假设我从一个 PDF 文档开始,比如 12 页,用以下命令查看表明。要生成另一个 6 页的 PDF,页面设置为每面两页,我通常使用 ^P 对话框窗口中列出的“打印到文件”设备。这效果非常好。
我想将此操作翻译为命令行。
- 据我了解,这不是一个操作pdftk可以做。请交叉检查。
- 该命令
lp
将接受该选项-o number-up=2
,但无法识别任何名为“打印到文件”的设备,该设备确实不会出现在lpstat -p -d
. - 我知道这个帖子什么是“打印到文件”?可以从命令行使用它吗?。我已经安装了cups-pdf由此确认名为 PDF 的新打印机。但是,简单文本文件的打印质量太原始(例如,一开始就没有打印边距)。此外,如果我在该设备上重新打印现有的 PDF 文件,例如
lp -p PDF existing.pdf
,evince 甚至无法打开该复制的输出,而“打印到文件”方式则不然。 - 我看了一下
man evince
。在底部,它涉及一些打印预览选项并重定向到GNOME-开发者项目页面。诚然,我无法理解和使用它。
实际上是否有一种方法可以将命令行的灵活性与我从 GUI 中的“打印到文件”选项获得的打印质量结合起来?
我的测试用例再次是从命令行从每张打印两页的源文档创建 PDF。
感谢您的思考。
答案1
有pdfnup
(或pdfjam
) 命令行工具。您可以从您的发行版的存储库中安装它(sudo apt-get install pdfjam
对于基于 Debian 的发行版,yaourt -S pdfnup
Arch 等)。
默认选项将采用输入 PDF 文件并生成输出 PDF,每页有两个输入页面:
pdfnup -o output.pdf input.pdf
答案2
扩展至接受的答案:
使用时pdfjam
您还需要通过横向选项。用法是:
pdfjam input.pdf -o output.pdf --nup 2x1 --landscape
请注意,额外的内容--angle 90
可能会节省您的时间,具体取决于原始 PDF 中页面的方向。
答案3
是的,您可以打印多页:
command | lpr -P <printername> -p <priority from 1 to 100>
使用示例:
ls -l | lpr -P hpprinter -p 2
答案4
扩展至这个扩展答案对于使用 ISO A4 的非美国人:
pdfjam input.pdf -o output.pdf --nup 2x1 --landscape --paper a4paper
否则 pdfjam 似乎默认为 US-Letter (至少在我的机器上)。