如何从命令行将常规文件打印到pdf

在gedit中,打印文件提供了打印到文件的选项,文件可以保存为pdf。 如何从命令行执行相同的操作?

这是一个不涉及OpenOffice的解决方案:

  1. sudo apt-get install enscript

  2. 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