如何使用手册布局在Evince中打印PostScript文件?
我有man -t ssh > man_ssh.ps
生成的手册页的PostScript输出。 它打开以便在Evince文档查看器中查看。 我想在支持双面打印的打印机上打印它。 因此,我想以“宣传册”模式打印 – 也就是说,当两页单页打印文档的四页时,所以当纸张一次折叠成两半时,页面的编号一份文件就像一本小册子。 如何在Evince中以这种方式打印文档?
UPD:还有一个问题,如何使man -t
输出符合小册子页面布局 – 即更宽的内边距,使页面“左”和“右”?
我找到了一种配置CUPS的方法,以便它为我调用pdfbook
。 该过程归结为以下内容:
-
在CUPS服务器(例如,
http://localhost:631
)中,为要为其启用小册子打印的打印机创建配置的副本。 我们将新打印机称为“Print-booklet”。 -
以root身份编辑
/etc/cups/ppd/Print-booklet.ppd
。 添加以下行,例如,在*cupsFilter
条目之前:*cupsPreFilter: "application/pdf 0 booklettopdf"
。 -
(这一步有点乱,也许可以用更干净的方式完成。)在
/usr/lib/cups/filter
,创建脚本booklettopdf
(以root身份):#!/bin/sh for e in "$@"; do echo DEBUG: $0: $e 1>&2; done TMPFILE=$(mktemp) echo DEBUG: $0: $TMPFILE 1>&2 if [ "$6" = "" ]; then cat else cat "$6" fi | pdfbook --scale 0.97 --outfile $TMPFILE && cat $TMPFILE && rm $TMPFILE
-
使脚本可执行:
chmod +x booklettopdf
。 -
打印测试页。
现在,只要您想以小册子格式打印,请选择新打印机“Print-booklet”。
cupsPreFilter
是一个CUPS PPD扩展 ,似乎application/pdf
格式总是出现在filter链中(Ubuntu 12.10,也许更早?)。
我投票赞成将此function集成到CUPS中。
看起来目前无法在小册子(小册子)模式下打印页面,无论是在Evince还是在Xpdf中。 有一个半解决方案来使用pstools
包中的psbook
实用程序,它将重新排列并输出postscript文件中的页面,以便它们像小册子模式一样。 请注意psbook
的-s
选项,它控制将放入一本小册子的原始页面数。 当您想要打印大量不会同时折叠的页面但折叠成多个子小册子时,这非常有用。 例如,120页的文档默认会进入30页的小册子,这很难折叠。 使用psbook -s 24
将使psbook -s 24
120张/ 24张= 5张小册子6张,这些小册子易于折叠然后组合在一起。
另请注意, man -t
输出没有为小册子打印做好充分准备 – 它的页面编号位于“右侧”,而不是“外侧”,“左”和“右”页边距相同而不是“内部” “边距大于”外部“,页面不分类为”左“和”右“。 关于如何调整man -t
输出的讨论就在这里 。