如何从命令行将常规文件打印到pdf
在gedit中,打印文件提供了打印到文件的选项,文件可以保存为pdf。 如何从命令行执行相同的操作?
这是一个不涉及OpenOffice的解决方案:
-
sudo apt-get install enscript
-
enscript my_text_file.txt -o - | ps2pdf - output.pdf
有更多的选项可供选择,例如-B
省略页眉。 有关所有选项,请参阅man enscript
。
简单的描述方式
sudo apt-get install cups-pdf enscript
然后使用-P开关和打印机描述PDF在您的文件上运行enscript。
enscript -B -PPDF test.txt
安装cups-pdf时会创建一个包含说明PDF的打印机,当您在该打印机上使用enscript时,您的文档将被发送到PDF打印机,并将打印到文件中,在/ home / PDF目录中创建为.pdf,上面的命令将在PDF目录中将文本文件test.txt打印为pdf。
使用UNOCONV
sudo apt-get install unoconv
你可以在独立模式下使用unoconv,这意味着如果没有OpenOffice监听器,它将自己启动:
在您的文件所在的目录中运行:
unoconv -f pdf test.txt
这将创建一个漂亮的test.txt pdf。 在当前目录中
如果没有安装任何上述软件,可以使用已安装的cupsfilter
简单地执行以下cupsfilter
:
cupsfilter foo.txt > foo.pdf
(有关选项等,请参阅cupsfilter手册页:-))
有一个命令行程序可以在支持open / libre office的所有格式之间进行转换,称为unoconv,因此如果需要使用脚本进行批量转换,它将派上用场。
sudo apt-get install unoconv
- Unoconv主页
在各种标记语言之间进行转换时,Pandoc是必备的瑞士刀具。 为了让您开始首先安装pandoc转换器:
sudo apt-get install pandoc
pandoc的一般和最常用的语法是:
pandoc -f -t
请注意,在转换为PDF格式之前,您需要先安装texlive-latex-base软件包。 否则您将收到以下错误:
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
用你的文字格式替换txt(odt – html – ….)
paps
是一个比enscript
更好的选择
paps file.txt | ps2pdf - output.pdf
如上所述, enscript
是一种将文本转换为postscript的流行方式,然后可以进一步转换为PDF。
类似的工具,已经存在了很长时间,是a2ps
。 它有很多选项,包括在物理页面上放置多个页面。 使用sudo apt-get install a2ps
。
AFAIK,enscript和a2ps做同样的工作,但他们的界面不同,YMMV与他们各自。
我在德国Umlaute(ÄÖÜ)遇到了上述解决方案的一些问题。 或者,在paps的情况下,生成的PDF没有文本层。
对我来说最好的解决方案是使用wkthmltopdf 。 它似乎没有记录,但您可以使用以下语法轻松地将文本文件转换为PDF文件:
wktmltopdf
wkhtmltopdf可以处理UTF-8文件(与enscript不同)。 所有有问题的字符如ÄÖÜß等都会正确显示。
你可以使用a2x
a2x – 将Asciidoc文本文件转换为PDF,XHTML,HTML帮助,ODF,联机帮助页或纯文本
要安装a2x:
sudo apt-get install asciidoc
例如:
a2x -f pdf testfile.txt