当前位置: 首页>>技术教程>>正文


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

, , ,

问题描述

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

最佳解决方法

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

  1. sudo apt-get install enscript

  2. 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不同)。所有有问题的字符如ÄÖÜß等都会正确显示。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/3076.html,未经允许,请勿转载。