我有一个由 生成的手册页的 PostScript 输出man -t ssh > man_ssh.ps
。它在 Evince 文档查看器中打开以供查看。我想在支持双面打印的打印机上打印它。因此,我想以“小册子”模式打印它 - 即当文档的四页打印在单张纸的两面时,当纸张一次对折时,文档页面的编号就像小册子一样。我如何在 Evince 中以这种方式打印文档?
UPD:还有一个问题,如何使man -t
输出符合小册子的页面布局 - 即更宽的内边距,使页面“左”和“右”?
答案1
我已经找到了一种配置 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
。打印测试页。
现在,无论何时您想以小册子格式打印,都可以选择新的打印机“打印小册子”。
这cupsPreFilter
是一个CUPS PPD 扩展,并且似乎该application/pdf
格式将始终出现在过滤器链中(Ubuntu 12.10,也许更早?)。
我支持将此功能集成到 CUPS 中。
答案2
目前,似乎在 Evince 和 Xpdf 中都无法以小册子模式打印页面。有一个半解决方案,即使用软件包psbook
中的实用程序pstools
重新排列并输出 PostScript 文件中的页面,使它们以小册子模式运行。请注意 选项,-s
它psbook
控制一本小册子中的原始页面数量。当您想打印大量页面且这些页面不是一次性折叠,而是折叠成几个子小册子时,此功能很有用。例如,默认情况下,120 页的文档将变成 30 页的小册子,很难折叠。使用 将psbook -s 24
制作 120/24=5 本小册子,每本 6 页,易于折叠然后组合在一起。
还要注意的是,man -t
输出结果不适合小册子打印 - 它的页码在“右侧”,而不是“外侧”,并且“左侧”和“右侧”页边距相同,而不是“内侧”页边距大于“外侧”,并且页面未分为“左侧”和“右侧”。关于如何调整输出结果的man -t
讨论这里。