如何从命令行打印特定页面?

如何从命令行打印特定页面?

有没有办法通过命令行将 PDF 文件(或多个文件)发送到打印机,但仅打印奇数页?例如,lpr -{some option} *.pdf或者也许{some command to get odd-numbered pages} *.pdf | lpr。这比打开每个文件、打开“打印”对话框并告诉它打印第 1、3、5、7、9 页要快...这个想法是打印所有奇数页,然后我可以打印偶数页纸的另一面。

答案1

尝试

lpr -o page-set=odd <file>
lpr -o page-set=even <file>

您可以在以下位置找到此选项和其他 lpr 选项的文档杯子文档

答案2

fschmitt 提供的 cups 解决方案的替代方案 - 例如,如果您只有一些有限的 lpr 可用 - 是命令选集

例如,在没有双面打印单元的打印机中进行手动双面打印:

$ psselect -e -r < foo.ps | lpr
$ # manually rotate pages by 180 degrees and reinsert
$ psselect -o < foo.ps | lpr

好吧,只有当您的打印机具有坚如磐石的纸张传输机制时才有效......

-e 仅选择偶数页,-o 奇数页,-r 反转选择

答案3

如果您选择预处理 PDF(例如,因为您的打印框架不是 CUPS 并且不支持页面选择),您可以使用pdftk

pdftk A=foo.pdf cat Aodd output - | lpr
# take out the sheets and feed them back in
pdftk A=foo.pdf cat Bend-1even output - | lpr

根据打印机的便宜程度,您可能需要反向打印奇数页并按顺序打印偶数页:转到end-1另一个命令。如果文档页数为奇数,则从纸叠中取出最后一页,并且不要第二次送回。

相关内容