Jak wydrukować zwykły plik do pdf z wiersza poleceń


34

W programie gedit drukowanie pliku daje opcję drukowania do pliku, w którym plik można zapisać jako plik pdf. Jak mogę zrobić to samo z wiersza poleceń?

Odpowiedzi:


43

Oto rozwiązanie, które nie obejmuje OpenOffice:

  1. sudo apt-get install enscript

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

Istnieje więcej opcji enscript, np. -BPominięcie nagłówka strony. Zobacz man enscriptwszystkie opcje.


1
Dobra alternatywa dla Stefano, szczególnie dla każdego, kto nie korzysta z open / libreoffice, ponieważ unoconv zależy od zainstalowania jednego z nich.
— Allan

+1 za miłą odpowiedź, tę, którą miałem zamiar udzielić, właśnie postanowiłem dać taką, która, jak sądzę, doda coś do tego, co już jest.
— Sabacon

Czy nie ma wbudowanego programu lub komendy bash, aby to zrobić?
— kashminder

1
Dzięki! Działa z większością tekstów, jednak enscript działa tylko ze starym kodowaniem, nie działa na przykład z UTF-8, więc nie można przekonwertować tekstu, jeśli zawiera on na przykład symbol euro (€) ...
— Antoine Dusséaux

20

bez instalowania żadnego z wyżej wymienionych programów można po prostu wykonać następujące czynności z już zainstalowanym cupsfilter:

cupsfilter foo.txt > foo.pdf

(opcje itp. znajdują się na stronach podręcznika cupfilter :-))


2
Jedyna odpowiedź, która bez problemu poradziła sobie z moimi plikami tekstowymi UTF8 :) oraz łatwiejsza do zrobienia praktycznie bez zależności
— Axel Advento

13

PROSTY SPOSÓB PISANIA

sudo apt-get install cups-pdf enscript

Następnie w tym przypadku uruchom skrypt na pliku za pomocą przełącznika -P i opisu drukarki PDF.

enscript -B -PPDF test.txt

Drukarka z opisem PDF została utworzona podczas instalacji cup-pdf, kiedy użyjesz w tej drukarce kodu, twój dokument zostanie wysłany do drukarki PDF i wydrukowany do pliku, utworzony jako .pdf w katalogu / home / PDF, powyższe polecenie wydrukuje plik tekstowy test.txt jako plik pdf w katalogu PDF.

KORZYSTANIE Z UNOCONV

sudo apt-get install unoconv

Możesz używać unoconv w trybie autonomicznym, co oznacza, że ​​w przypadku braku detektora OpenOffice, uruchomi się własny:

W katalogu, w którym znajduje się plik, uruchom:

unoconv -f pdf test.txt

stworzy to ładnie wyglądający plik pdf z test.txt. w bieżącym katalogu


enscript foo.txt -o bar.pdfdziała całkiem dobrze; dzięki!
— Thufir

6

Istnieje program wiersza poleceń, który może konwertować między wszystkimi obsługiwanymi formatami open / libre office o nazwie unoconv, więc jeśli potrzebujesz konwersji wsadowej za pomocą skryptu, przyda się.

sudo apt-get install unoconv

Nie o to prosił OP.
— enzotib

2
? OP? kto jest OP i po co głosować, gdy odpowiada na pytanie?
— RolandiXor

5

paps jest lepszą alternatywą niż enscript

paps file.txt | ps2pdf - output.pdf

7
Witamy w Ask Ubuntu hwc! Chociaż Twój post odpowiada na pytanie, zawsze lepiej jest podać więcej informacji. Na przykład, dlaczego jest papslepsza alternatywa? A jeśli papsnie jest instalowane domyślnie, jakie jest polecenie, aby je zainstalować? Zawsze możesz edytować swoją odpowiedź, klikając edittuż pod treścią odpowiedzi. Dzięki!
— Alaa Ali,

5

Pandoc jest niezbędnym narzędziem do szwajcarskiego noża, jeśli chodzi o konwersję między różnymi językami znaczników. Aby rozpocząć, najpierw zainstaluj konwerter pandoc:

sudo apt-get install pandoc

Ogólna i najczęściej używana składnia pandoc to:

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

Pamiętaj, że musisz najpierw zainstalować pakiet texlive-latex-base, aby móc przekonwertować go na format PDF. W przeciwnym razie pojawi się następujący błąd:

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

Aby zainstalować:

sudo apt-get install texlive-latex-base

Teraz możesz łatwo przekonwertować dowolny plik na pdf.

pandoc -t txt -t pdf source.txt

zamień txt na format tekstowy (odt - html - ....)


1
W porównaniu z innymi odpowiedziami, pandoc plus texlive generuje złe wyniki (nie respektując nowych linii), a także przesadza i wprowadza w błąd. Potrzebnych jest o wiele więcej pakietów, ciągnięcie w texlive, zalecane czcionki texlive, ruby ​​itp. Np. Dostaję, pandoc: Unknown writer: pdfdopóki nie zainstaluję texlive-latex-base. To jest zaufane. Zobacz github.com/jgm/pandoc/issues/1155 Potem pojawił się błąd dotyczący brakującej czcionki, potem jedna o url.sty itp.
— nealmcb

2

Jak napisano powyżej, enscriptjest popularnym sposobem konwersji tekstu na PostScript, który można następnie przekonwertować na format PDF.
Podobne narzędzie istnieje od dłuższego czasu a2ps. Ma wiele opcji, w tym umieszczanie wielu stron na stronie fizycznej. Zainstaluj ap2s z sudo apt-get install a2ps.

AFAIK, enscript i a2ps wykonują tę samą pracę, ale ich interfejs jest inny i YMMV z każdym z nich.


Pomocny byłby przykład użycia a2ps. Opcja --delegate wydaje się być potrzebna w pdf, ale strona podręcznika tak naprawdę nie pomaga.
— nealmcb

2

Miałem pewne problemy z niemieckim Umlaute (ĘÖÜ) z wyżej wymienionymi rozwiązaniami. Lub, w przypadku dokumentów, wynikowy plik PDF nie ma warstwy tekstowej.

Najlepszym rozwiązaniem dla mnie było użycie wkthmltopdf . Wygląda na to, że nie jest udokumentowany, ale możesz łatwo przekonwertować pliki tekstowe na pliki PDF przy użyciu tej składni:

wktmltopdf <textfile> <pdffile>

wkhtmltopdf może obsługiwać pliki UTF-8 (w przeciwieństwie do enscript). Wszystkie problematyczne znaki, takie jak ĘÖÜß itp., Będą wyświetlane poprawnie.


Zostało to naprawione w najnowszej wersji paps, która jest w stanie wygenerować pdf do wyboru. Zobacz: github.com/dov/paps .
— Dov Grobgeld,

1

Możesz użyć a2x

a2x - konwersja pliku tekstowego Asciidoc do formatu PDF, XHTML, HTML Help, ODF, strony podręcznika lub zwykłego tekstu

Aby zainstalować a2x:

sudo apt-get install asciidoc

na przykład:

 a2x -f pdf testfile.txt

0

Możesz także użyć u2ps .

Generuje to zarówno ps, jak i pdf. Akceptuje tekst UTF-8 i obsługuje podświetlanie składni poprzez znaczniki Pango.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.