Wie kann ich gut formatierten Code drucken?

20

Ähnlicher Abschlag auf Stack - Überlauf zu verwenden zu schaffen monospace output, wie kann ich tun , dass für meine Programme.

Ich habe lp filename.txt ausprobiert und war erfreulicherweise erfreut festzustellen, dass es in der Lage war, den lokalen Netzwerkdrucker zu verwenden und "so wie er ist" zu drucken.

Das Problem ist, dass die Ausgabe nicht in einem Abstand erfolgt.

Gibt es eine schnellere Möglichkeit als ...

1) copy the text
2) paste into a text doc
3) format the document as mono
4) print it 

Ich würde gerne eine Option finden wie lp filename.txt -format=mono;)

Michael Durrant
quelle
1
Mögliches Duplikat von syntax_highlight <Quelldatei> | lpr
Gilles 'SO - hör auf böse zu sein'

Antworten:

21

Sie können den VIM-Editor verwenden, um beliebige Dateien zu drucken, die VIM lesen kann. Verwenden Sie Folgendes, um eine PostScript-Datei zu erstellen.

vim \
  -c 'hardcopy > output.ps' \
  -c quit <input_file>

Wenn Sie eine PDF-Datei möchten, fügen Sie diese && ps2pdf output.pszur Befehlszeile hinzu.

Sie können auch ein kleines Skript schreiben, das den aktuellen Inhalt der Zwischenablage in eine temporäre Datei einfügt, vim für die Datei ausführt, die resultierende Datei druckt und die temporäre Datei löscht.

Marco
quelle
1
Eine gute Option für Ihr vimrc zum Drucken von Code ist set printoptions=portrait:ndas Drucken im Querformat .
Oligofren
1
Ich bin wahrscheinlich nicht der einzige hier, der die Seitenköpfe ausschalten wollte, sobald der Druck funktioniert hat. Sie können sie set printoptions=header:0deaktivieren , indem Sie sie zu vimrc hinzufügen .
Andy Gaskell
Für HTMl können Sie tunvim -c TOhtml -c write -c quit <input_file>
Matthew Cline
1
Ups, das sollte seinvim -c 'set cmdheight=2' -c TOhtml -c write -c quit -c quit <input_file>
Matthew Cline
@AndyGaskell Ich habe gebeten , eine Frage, bitte sehen , wenn Sie es lösen können: unix.stackexchange.com/questions/315363/...
ein Angebot nicht ablehnen kann
12

Der kürzeste Weg ist hier wahrscheinlich a2ps, er generiert standardmäßig ein Postscript mit Leerzeichen.

Sie können a2psmit brauen, dh installierenbrew install a2ps

Je nach Konfiguration wird die Ausgabe direkt an stdout oder lp gesendet und mit überschrieben -o. Erkennt a2psauch mehrere Programmiersprachen und druckt sie schön aus.

a2ps -o output.ps infile.text

Verwenden Sie, --pro=colorwenn Farbe verfügbar ist:

a2ps --pro=color -o output.ps infile.text

Für HTML - Ausgabe neige ich dazu verwenden , vim‚s - 2htmlFunktion.

Thor
quelle
das sah toll aus ... aber ich habe keine a2ps. Weiß jemand, wie man installiert?
Michael Durrant
Das hängt davon ab, auf welchem ​​Betriebssystem Sie es installieren möchten.
Thor
sicher, es ist ein Mac - osx
Michael Durrant
Ein bisschen googeln es scheint, dass a2ps einige Installationsprobleme auf osx hat. Ich habe nicht viel Erfahrung mit osx, enscriptwurde aber als Alternative erwähnt.
Thor
Sie können a2psmit MacPorts ( macports.org ) installieren . Ich hatte keine Probleme bei der Installation (auf Lion)
Matteo
3

a2pswar die Antwort. Ich habe es mit brew installiert:

brew install a2ps

Jetzt kann ich a2ps myfilenameund es funktioniert.

Leider erscheint es im Querformat, und wenn ich versuche, es ins Hochformat zu bringen, ist es nach links geknickt und winzig und nimmt nur 50% der Seite ein. [upate - Fix für dieses Problem mit Parameter -1 gefunden (für die Anzahl der auf einem Blatt zu findenden Seiten - der Standardwert war 2)

Als Landschaftsgärtner hat es jedoch funktioniert und der Code hat den fixed formatStil, den ich gesucht habe.

Michael Durrant
quelle