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


8

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

Answers:


10

尝试

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

您可以在cups文档中找到有关此选项和其他lpr选项的文档


// @ fschmitt:谢谢,效果很好!(对不起,我不知道如何发表评论而不是留下一个完整的答案。)
Wolf

是否有一个收集所有可能lpr选项的联机帮助页?
Geremia

4

由fschmitt杯液的替代品-例如,如果你只有一些有限的LPR可用-是命令psselect

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

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

好吧,仅当您的打印机具有坚如磐石的纸张传输机制时,该打印机才起作用...

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


2

如果选择预处理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另一个命令。如果文档的页面数奇数,请从堆栈中取出最后一页,不要第二次反馈。


嗯,关于纸张燃烧的问题-我遇到的HP打印机的双面型号总是自动重新插入页面以在背面进行打印,它们不会一次在两个面上打印。
maxschlepzig

@maxschlepzig:是的,您是对的,我已经过分概括了一个有效的观点。在已经存在并且积聚了一些不良物质(污垢,喷墨墨水,小泪痕等)的纸张背面上打印可能会损坏纸张或打印机,但是在从打印机中取出纸张时请重新插入纸张以进行更换。第一次很好。
吉尔(Gilles)'所以
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.