【问题标题】:Ghostscript: print only last page of batch of filesGhostscript:仅打印一批文件的最后一页
【发布时间】:2015-03-26 06:33:14
【问题描述】:

我想在 Windows 命令上仅打印一批 .pdf 文件的最后一页并将它们组合起来。

每个 .pdf 文件的页数各不相同。

我可以用

确定最后一页
gs -q -c "(file.pdf) (r) file runpdfbegin pdfpagecount =" -f file.pdf

但是如何打印它们并与 Ghostscript 结合呢?

【问题讨论】:

    标签: batch-file pdf count ghostscript pdftk


    【解决方案1】:

    这个答案不是使用Ghostscript,而是pdftk

    对于手头的任务,这是更好的工具。 示例命令:

    pdftk             \
        A=file1.pdf   \
        B=file2.pdf   \
        C=file3.pdf   \
      cat             \
        Aend          \
        Bend          \
        Cend          \
      output          \
        result.pdf
    

    这使用了运行 pdftk 时可用的 2 个小技巧:

    1. '句柄' ABC 用于 file1.pdffile2.pdffile3.pdf
    2. end 关键字附加到句柄以指示最后一页。

    pdftk 句柄可用于指示页面范围,例如C4-6(表示file3.pdf 的第4-6 页)或Bodd(表示所有奇数页file2.pdf)。

    通过查看pdftk --help 的输出找到更多选项。

    通常,使用 pdftk 处理这种特定类型的作业比使用 Ghostscript 快得多。

    如果您需要将 Ghostscript 用于它的其他功能(即它基本上每次写入 PDF 输出时都会构建一个全新的 PDF 文件),您仍然可以通过 Ghostscript 运行result.pdf。我的猜测是,即使是 pdftk + gs 运行的总时间也将低于让 gs 单独完成所有工作。

    【讨论】:

      【解决方案2】:

      您不能简单地说“LastPage”,您需要单独运行每个文件并在每个文件之间更改 FirstPage 和 LastPage。我还没有尝试过,但类似:

      gs -dFirstPage=10 -dLastPage=10 file1.pdf -dFirstPage=2 -dLastPage=2 file2.pdf....
      

      可能会奏效。当然,您需要为每个文件正确设置 FirstPage 和 LastPage。这几乎肯定不会在未来的版本中起作用,因为 FirstPage 和 LastPage 的操作正在发生变化。完成这项工作后,您将需要一种不同的方法。

      可以编写一个 PostScript 程序,该程序打开一组 PDF 文件中的每一个,确定每个文件的最后一页(使用您已有的代码)并在执行文件之前设置 FirstPage 和 LastPage再次渲染它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-20
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        • 1970-01-01
        • 2012-10-14
        • 2022-06-15
        相关资源
        最近更新 更多