考虑以下过程:
1) 使用 (Ubuntu) 文档查看器打开 PDF 文件。
2)转到文件
3)转到打印
4) 选择“打印为文件”并勾选“pdf”
是的,我正在将 PDF 打印为 PDF 文件。我必须为大量文件执行此操作。我想在终端上运行一个脚本来做到这一点。
也许你认为这个过程根本没有任何意义,但它实际上是我发现处理这里考虑的问题的唯一安全方法。这个 StackOverflow 问题显示了 PDF 文件的问题,找不到 EOF 标记。当我执行上述过程时,我能够解决这个问题[这不是 StackOverflow 站点中提供的解决方案,在这里不起作用。]
我想对所有出现此问题的文件自动执行此操作。
我知道我应该为此构建一个脚本 (.sh),但我不知道如何进行。
有问题的 PDF 文件 (1) 示例在这里
更正的 PDF 文件 (2) 在这里
它们之间的唯一区别是我打开第一个使用“Ubuntu Document Viewer”,我去了“File”、“Print”、“Print to File”、“Output=pdf”。
我想自动做到这一点。
编辑:
我不想合并文件。
在 Ghostscript 的帮助下,您可以最轻松地实现您想要的。我用 Ghostscript 9.26 版成功测试了这个:
我必须承认,我并不真正理解您在此处未修改的示例文件中使用 EOF 标记的问题,因为我可以清楚地看到其中存在这个 EOF 标记。
但是,我在此处的“更正”示例文件中看到了另一个问题:此文件现在使用的页面大小为 A4(595 x 842 pts),具有较大的白边距,而您未修改的文件的边距较小,页面大小为362 x 558 pts(不到 A4 的一半!)
我的方法具有保留原始页面大小的优点。
要将其应用于当前目录中的所有 PDF 文件,包括所有子目录,请使用以下命令:
确保您已
cups-pdf
安装并添加为打印机。记下 pdf 打印机名称。(可选)编辑/etc/cups/cups-pdf.conf
:取消注释并将其中的行更改为#Out /var/spool/cups-pdf/${USER}
所需的输出目录。然后重启 CUPS:
sudo systemctl restart cups
现在为了打印:
现在将文件从默认输出目录复制到所需位置,如果您没有编辑
cups-pdf.conf
安装poppler-utils
并运行pdfunite input1.pdf input2.pdf input3.pdf output.pdf
。