如何使用手册布局在Evince中打印PostScript文件?

我有man -t ssh > man_ssh.ps生成的手册页的PostScript输出。 它打开以便在Evince文档查看器中查看。 我想在支持双面打印的打印机上打印它。 因此,我想以“宣传册”模式打印 – 也就是说,当两页单页打印文档的四页时,所以当纸张一次折叠成两半时,页面的编号一份文件就像一本小册子。 如何在Evince中以这种方式打印文档?

UPD:还有一个问题,如何使man -t输出符合小册子页面布局 – 即更宽的内边距,使页面“左”和“右”?

我找到了一种配置CUPS的方法,以便它为我调用pdfbook 。 该过程归结为以下内容:

  1. 在CUPS服务器(例如, http://localhost:631 )中,为要为其启用小册子打印的打印机创建配置的副本。 我们将新打印机称为“Print-booklet”。

  2. 以root身份编辑/etc/cups/ppd/Print-booklet.ppd 。 添加以下行,例如,在*cupsFilter条目之前: *cupsPreFilter: "application/pdf 0 booklettopdf"

  3. (这一步有点乱,也许可以用更干净的方式完成。)在/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 
  4. 使脚本可执行: chmod +x booklettopdf

  5. 打印测试页。

现在,只要您想以小册子格式打印,请选择新打印机“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输出的讨论就在这里 。