Как напечатать обычный файл в pdf из командной строки
В gedit печать файла дает возможность печати в файл, где файл может быть сохранен в формате PDF. Как я могу сделать то же самое из командной строки?
9 ответов
Вот решение, которое не включает OpenOffice:
sudo apt-get install enscript
enscript my_text_file.txt -o - | ps2pdf - output.pdf
Есть больше вариантов enscript
например, -B
опустить заголовок страницы. Увидеть man enscript
для всех вариантов.
Без установки какого-либо из вышеперечисленных программ можно просто сделать следующее с уже установленным cupsfilter
:
cupsfilter foo.txt > foo.pdf
(варианты и т. д. см. на страницах справки cupsfilter:-))
ПРОСТОЙ СПОСОБ ЗАПИСИ
sudo apt-get установить cups-pdf enscript
Затем запустите enscript для вашего файла с ключом -P и описанием принтера PDF в этом случае.
enscript -B -PPDF test.txt
Принтер с описанием PDF был создан при установке cups-pdf, когда вы используете enscript с этим принтером, ваш документ будет отправлен на принтер PDF и будет напечатан в файл, созданный в формате.pdf в каталоге /home/PDF, Команда выше напечатает текстовый файл test.txt в формате PDF в каталоге PDF.
ИСПОЛЬЗОВАНИЕ UNOCONV
sudo apt-get установить unoconv
Вы можете использовать unoconv в автономном режиме, это означает, что при отсутствии прослушивателя OpenOffice он запустит свой собственный:
В каталоге, где находится ваш файл, запустите:
unoconv -f pdf test.txt
это создаст красивый файл pdf файла test.txt. в текущем каталоге
Pandoc - обязательный инструмент для швейцарских ножей, когда дело доходит до конвертации между различными языками разметки. Чтобы начать, сначала установите конвертер pandoc:
sudo apt-get install pandoc
Общий и наиболее часто используемый синтаксис для pandoc:
pandoc -f <from format> -t <to format> <source file>
Обратите внимание, что вам нужно сначала установить пакет texlive-latex-base, прежде чем вы сможете конвертировать его в формат PDF. В противном случае вы получите следующую ошибку:
pandoc: pdflatex not found. pdflatex is needed for pdf output.
Чтобы установить это:
sudo apt-get install texlive-latex-base
Теперь вы можете легко конвертировать любой файл в PDF.
pandoc -t txt -t pdf source.txt
замените текст на ваш текстовый формат (odt - html - ....)
Существует программа командной строки, которая может конвертировать все поддерживаемые форматы open/libre office, называемая unoconv, поэтому, если вам нужно выполнить пакетное преобразование с помощью скрипта, это пригодится.
sudo apt-get install unoconv
paps
это лучшая альтернатива, чем enscript
paps file.txt | ps2pdf - output.pdf
У меня были некоторые проблемы с немецким Umlaute (ÄÖÜ) с вышеупомянутыми решениями. Или, в случае paps, полученный PDF не имеет текстового слоя.
Лучшим решением для меня было использовать http://wkhtmltopdf.org/. Кажется, это не документировано, но вы можете легко конвертировать текстовые файлы в PDF-файлы, используя этот синтаксис:
wktmltopdf <textfile> <pdffile>
wkhtmltopdf может обрабатывать файлы UTF-8 (в отличие от enscript). Все проблемные символы, такие как ÄÖÜß и т. Д., Будут отображаться правильно.
Как написано выше, enscript
популярный способ конвертировать текст в постскриптум, который затем можно конвертировать в PDF.
Подобный инструмент, который существует уже давно, a2ps
, Он имеет большое количество опций, включая размещение нескольких страниц на физической странице. Установите ap2s с sudo apt-get install a2ps
,
AFAIK, enscript и a2ps выполняют одну и ту же работу, но их интерфейс отличается и YMMV с каждым из них.
Вы можете использовать a2x
a2x - конвертирует текстовый файл Asciidoc в PDF, XHTML, HTML Help, ODF, manpage или обычный текст
Чтобы установить a2x:
sudo apt-get install asciidoc
например:
a2x -f pdf testfile.txt
Вы также можете использовать u2ps.
Это генерирует как PS и PDF. Это принимает текст UTF-8 и поддерживает подсветку синтаксиса с помощью разметки Pango.