So drucken Sie eine reguläre Datei von der Befehlszeile in ein PDF


34

In gedit bietet das Drucken einer Datei die Möglichkeit, sie in eine Datei zu drucken, in der sie als PDF gespeichert werden kann. Wie kann ich dasselbe über die Befehlszeile tun?

Antworten:


43

Hier ist eine Lösung ohne OpenOffice:

  1. sudo apt-get install enscript

  2. enscript my_text_file.txt -o - | ps2pdf - output.pdf

Es gibt mehr Möglichkeiten enscript, um zB -Bden Seitenkopf wegzulassen. Siehe man enscriptfür alle Optionen.


1
Eine gute Alternative Stefano, insbesondere für alle, die open / libreoffice nicht als Unoconv verwenden, ist davon abhängig, dass eines dieser Programme installiert ist.
Allan

+1 für die nette Antwort, die ich geben wollte, ich habe mich gerade entschieden, eine zu geben, von der ich denke, dass sie etwas zu dem hinzufügt, was bereits hier ist.
Sabacon

Gibt es kein eingebautes Bash-Programm oder einen Befehl, um dies zu tun?
Kashminder

1
Vielen Dank! Es funktioniert für die meisten Texte, Enscript funktioniert jedoch nur mit alter Kodierung, es funktioniert beispielsweise nicht mit UTF-8, sodass Sie einen Text nicht konvertieren können, wenn er beispielsweise das Euro-Symbol (€) enthält ...
Antoine Dusséaux

20

Ohne Installation der oben genannten Software kann man mit bereits installierter Software einfach Folgendes tun cupsfilter:

cupsfilter foo.txt > foo.pdf

(Optionen etc. entnehmen Sie bitte den cupsfilter Manpages :-))


2
Die einzige Antwort hier, die meine UTF8-Textdateien ohne Probleme behandelt :) sowie einfacher mit praktisch keine Abhängigkeiten zu tun
Axel Advento

13

DER EINFACHE SCHREIBWEG

sudo apt-get install cups-pdf enscript

Führen Sie dann mit dem Schalter -P und der Druckerbeschreibung PDF in diesem Fall enscript für Ihre Datei aus.

enscript -B -PPDF test.txt

Ein Drucker mit der Beschreibung PDF wurde erstellt, als Sie cups-pdf installiert haben. Wenn Sie enscript mit diesem Drucker verwenden, wird Ihr Dokument an den PDF-Drucker gesendet und in eine Datei gedruckt, die als .pdf in Ihrem / home / PDF-Verzeichnis erstellt wurde Befehl oben druckt die Textdatei test.txt als PDF im PDF-Verzeichnis.

UNOCONV VERWENDEN

sudo apt-get install unoconv

Sie können Unoconv im Standalone-Modus verwenden. Dies bedeutet, dass in Abwesenheit eines OpenOffice-Listeners ein eigener gestartet wird:

Führen Sie in dem Verzeichnis, in dem sich Ihre Datei befindet, Folgendes aus:

unoconv -f pdf test.txt

Dadurch wird ein gut aussehendes PDF von test.txt erstellt. im aktuellen Verzeichnis


enscript foo.txt -o bar.pdffunktioniert ganz gut; Vielen Dank!
Thufir


5

paps ist eine bessere Alternative als enscript

paps file.txt | ps2pdf - output.pdf

7
Willkommen bei Ask Ubuntu hwc! Während Ihr Beitrag die Frage beantwortet, ist es immer besser, mehr Informationen hinzuzufügen. Warum ist zum Beispiel papseine bessere Alternative? Und wenn papses nicht standardmäßig installiert ist, mit welchem ​​Befehl wird es installiert? Sie können Ihre Antwort jederzeit bearbeiten , indem Sie editrechts unter dem Antworttext auf klicken . Vielen Dank!
Alaa Ali

5

Pandoc ist ein Muss für Schweizer Messer, wenn es um die Konvertierung zwischen verschiedenen Markup-Sprachen geht. Installieren Sie zunächst den Pandoc Converter:

sudo apt-get install pandoc

Allgemeine und am häufigsten verwendete Syntax für Pandoc ist:

pandoc -f <from format> -t <to format> <source file>

Bitte beachten Sie, dass Sie zuerst das Paket texlive-latex-base installieren müssen, bevor Sie in das PDF-Format konvertieren können. Andernfalls erhalten Sie folgende Fehlermeldung:

pandoc: pdflatex not found. pdflatex is needed for pdf output.

So installieren Sie es:

sudo apt-get install texlive-latex-base

Jetzt können Sie jede Datei einfach in PDF konvertieren.

pandoc -t txt -t pdf source.txt

Ersetzen Sie txt durch Ihr Textformat (odt - html - ....)


1
Im Vergleich zu den anderen Antworten erzeugt pandoc plus texlive eine schlechte Ausgabe (ohne Berücksichtigung von Zeilenumbrüchen) und ist übertrieben und verwirrend beim Booten. Es werden sehr viel mehr Pakete benötigt, z. B. texlive, texlive-fonts-recommended, ruby pandoc: Unknown writer: pdf. Dies ist auf vertrauenswürdig. Siehe github.com/jgm/pandoc/issues/1155. Dann habe ich eine Fehlermeldung über eine fehlende Schriftart erhalten, dann eine über url.sty usw.
nealmcb

2

Wie oben beschrieben, enscriptist es eine beliebte Methode, Text in Postscript umzuwandeln, der dann weiter in PDF konvertiert werden kann.
Ein ähnliches Tool, das es schon lange gibt, ist a2ps. Es gibt eine Vielzahl von Optionen, darunter das Platzieren mehrerer Seiten auf einer physischen Seite. Installiere ap2s mit sudo apt-get install a2ps.

AFAIK, enscript und a2ps machen den gleichen Job, aber ihre Schnittstelle ist unterschiedlich und YMMV mit jedem von ihnen.


Ein Beispiel für die Verwendung von a2ps würde helfen. Die Option --delegate scheint für PDF erforderlich zu sein, aber die Manpage hilft dort nicht wirklich.
Nealmcb

2

Ich hatte einige Probleme mit der deutschen Umlaute (ÄÖÜ) mit den oben genannten Lösungen. Bei Seitenumbrüchen enthält die resultierende PDF-Datei keine Textebene.

Die beste Lösung für mich war die Verwendung von wkthmltopdf . Es scheint nicht dokumentiert zu sein, aber Sie können Textdateien einfach in PDF-Dateien konvertieren, indem Sie diese Syntax verwenden:

wktmltopdf <textfile> <pdffile>

wkhtmltopdf kann UTF-8-Dateien verarbeiten (im Gegensatz zu enscript). Alle problematischen Zeichen wie ÄÖÜß usw. werden korrekt angezeigt.


Dies wurde in der neuesten Version von paps behoben, mit der auswählbare PDF-Dateien ausgegeben werden können. Siehe: github.com/dov/paps .
Dov Grobgeld

1

Sie können a2x verwenden

a2x - konvertiert Asciidoc-Textdateien in PDF, XHTML, HTML-Hilfe, ODF, Manpage oder Nur-Text

A2x installieren:

sudo apt-get install asciidoc

beispielsweise:

 a2x -f pdf testfile.txt

0

Sie können auch u2ps verwenden .

Dies erzeugt sowohl ps als auch pdf. Dies akzeptiert UTF-8-Text und unterstützt die Syntaxhervorhebung durch Pango-Markups.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.