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

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

我有一个由 生成的手册页的 PostScript 输出man -t ssh > man_ssh.ps。它在 Evince 文档查看器中打开以供查看。我想在支持双面打印的打印机上打印它。因此,我想以“小册子”模式打印它 - 即当文档的四页打印在单张纸的两面时,当纸张一次对折时,文档页面的编号就像小册子一样。我如何在 Evince 中以这种方式打印文档?

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

答案1

我已经找到了一种配置 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. 打印测试页。

现在,无论何时您想以小册子格式打印,都可以选择新的打印机“打印小册子”。

cupsPreFilter是一个CUPS PPD 扩展,并且似乎该application/pdf格式将始终出现在过滤器链中(Ubuntu 12.10,也许更早?)。

我支持将此功能集成到 CUPS 中。

答案2

目前,似乎在 Evince 和 Xpdf 中都无法以小册子模式打印页面。有一个半解决方案,即使用软件包psbook中的实用程序pstools重新排列并输出 PostScript 文件中的页面,使它们以小册子模式运行。请注意 选项,-spsbook控制一本小册子中的原始页面数量。当您想打印大量页面且这些页面不是一次性折叠,而是折叠成几个子小册子时,此功能很有用。例如,默认情况下,120 页的文档将变成 30 页的小册子,很难折叠。使用 将psbook -s 24制作 120/24=5 本小册子,每本 6 页,易于折叠然后组合在一起。

还要注意的是,man -t输出结果不适合小册子打印 - 它的页码在“右侧”,而不是“外侧”,并且“左侧”和“右侧”页边距相同,而不是“内侧”页边距大于“外侧”,并且页面未分为“左侧”和“右侧”。关于如何调整输出结果的man -t讨论这里

相关内容