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

sky*_*esm 39 command-line pdf virtual-printer

在 gedit 中,打印文件提供了打印到文件的选项,该文件可以保存为 pdf。我怎样才能从命令行做同样的事情?

Ste*_*zzo 44

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

  1. sudo apt-get install enscript

  2. enscript my_text_file.txt -o - | ps2pdf - output.pdf

有更多选项enscript,例如-B省略页眉。查看man enscript所有选项。


小智 29

无需安装上述任何软件,只需在已安装的情况下执行以下操作cupsfilter

cupsfilter foo.txt > foo.pdf
Run Code Online (Sandbox Code Playgroud)

(有关选项等,请参阅 cupsfilter 手册页 :-) )

  • 这里唯一的答案可以毫无问题地处理我的 UTF8 文本文件:) 加上几乎没有依赖关系,更容易做到 (4认同)

Sab*_*con 13

简单的脚本方式

sudo apt-get install cups-pdf enscript

在这种情况下,然后使用 -P 开关和打印机描述 PDF 对您的文件运行 enscript。

enscript -B -PPDF test.txt

当您安装 cups-pdf 时创建了一个带有 PDF 描述的打印机,当您在该打印机上使用 enscript 时,您的文档将被发送到 PDF 打印机并打印到文件,在您的 /home/PDF 目录中创建为 .pdf,上面的命令会将文本文件 test.txt 打印为 PDF 目录中的 pdf。

使用 UNOCONV

sudo apt-get 安装 unoconv

您可以在独立模式下使用 unoconv,这意味着在没有 OpenOffice 侦听器的情况下,它将启动自己的:

在文件所在的目录中运行:

unoconv -f pdf test.txt

这将创建一个漂亮的 test.txt pdf。在当前目录


All*_*lan 6

有一个命令行程序可以在所有支持的 open/libre office 格式之间进行转换,称为unoconv, 因此如果您需要使用脚本进行批量转换,它会派上用场。

sudo apt-get install unoconv
Run Code Online (Sandbox Code Playgroud)

  • ? 操作?谁是 OP,为什么在回答问题时投反对票? (2认同)

小智 5

paps 是一个更好的选择 enscript

paps file.txt | ps2pdf - output.pdf
Run Code Online (Sandbox Code Playgroud)

  • 欢迎询问 Ubuntu hwc!虽然您的帖子确实回答了这个问题,但最好包含更多信息。例如,为什么 `paps` 是更好的选择?如果默认情况下没有安装`paps`,那么安装它的命令是什么?您始终可以通过单击答案正文正下方的“编辑”来[编辑]您的答案。谢谢! (8认同)

May*_*hux 5

在各种标记语言之间进行转换时,Pandoc 是必备的瑞士刀工具。首先安装 pandoc 转换器:

sudo apt-get install pandoc
Run Code Online (Sandbox Code Playgroud)

pandoc 的一般和最常用的语法是:

pandoc -f <from format> -t <to format> <source file>
Run Code Online (Sandbox Code Playgroud)

请注意,您需要先安装 texlive-latex-base 包,然后才能转换为 PDF 格式。否则会出现以下错误:

pandoc: pdflatex not found. pdflatex is needed for pdf output.
Run Code Online (Sandbox Code Playgroud)

要安装它:

sudo apt-get install texlive-latex-base
Run Code Online (Sandbox Code Playgroud)

现在您可以轻松地将任何文件转换为 pdf。

pandoc -t txt -t pdf source.txt
Run Code Online (Sandbox Code Playgroud)

用您的文本格式替换 txt(odt - html - ....)

  • 与其他答案相比,pandoc 加 texlive 产生了糟糕的输出(不尊重换行符),并且启动起来有点矫枉过正和混乱。需要更多的包,引入 texlive、texlive-fonts-recommended、ruby 等。例如,在我安装 texlive-latex-base 之前,我得到了 `pandoc: Unknown writer: pdf`。这是靠得住的。请参阅 https://github.com/jgm/pandoc/issues/1155 然后我收到了关于缺少字体的错误,然后是关于 url.sty 等的错误。 (2认同)