问题描述
在gedit中,打印文件提供了打印到文件的选项,文件可以保存为pdf。如何从命令行执行相同的操作?
最佳解决方法
这是一个不涉及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 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。在当前目录中
第四种方法
有一个命令行程序可以在支持open /libre office的所有格式之间进行转换,称为unoconv,因此如果需要使用脚本进行批量转换,它将派上用场。
sudo apt-get install unoconv
第五种方法
在各种标记语言之间进行转换时,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
用你的文字格式替换txt(odt – html – ….)
第六种方法
paps
是比enscript
更好的替代品
paps file.txt | ps2pdf - output.pdf
第七种方法
如上所述,enscript
是一种将文本转换为postscript的流行方式,然后可以进一步转换为PDF。 a2ps
是一种类似的工具,已经存在了很长时间。它有很多选项,包括在物理页面上放置多个页面。使用sudo apt-get install a2ps
安装ap2s。
AFAIK,enscript和a2ps做同样的工作,但他们的界面不同,YMMV与他们各自。
第八种方法
我在德国Umlaute(ÄÖÜ)遇到了上述解决方案的一些问题。或者,在paps的情况下,生成的PDF没有文本层。
对我来说最好的解决方案是使用wkthmltopdf。它似乎没有记录,但您可以使用以下语法轻松地将文本文件转换为PDF文件:
wktmltopdf <textfile> <pdffile>
wkhtmltopdf可以处理UTF-8文件(与enscript不同)。所有有问题的字符如ÄÖÜß等都会正确显示。