Batch file Ghostscript:仅打印批文件的最后一页

Batch file Ghostscript:仅打印批文件的最后一页,batch-file,pdf,count,ghostscript,pdftk,Batch File,Pdf,Count,Ghostscript,Pdftk,我只想在Windows命令上打印一批.pdf文件的最后一页,并将它们合并 每个.pdf文件的页数各不相同 我可以用它来确定最后一页 gs -q -c "(file.pdf) (r) file runpdfbegin pdfpagecount =" -f file.pdf 但是如何将它们打印出来并与Ghostscript结合起来呢?你不能简单地说“LastPage”,你需要单独运行每个文件,并在每个文件之间更改FirstPage和LastPage。我没有试过,但类似于: gs -dFirstPa

我只想在Windows命令上打印一批.pdf文件的最后一页,并将它们合并

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

我可以用它来确定最后一页

gs -q -c "(file.pdf) (r) file runpdfbegin pdfpagecount =" -f file.pdf

但是如何将它们打印出来并与Ghostscript结合起来呢?

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

gs -dFirstPage=10 -dLastPage=10 file1.pdf -dFirstPage=2 -dLastPage=2 file2.pdf....
可能有用。当然,您需要为每个文件获得正确的FirstPage和LastPage。但这几乎肯定不会在未来的版本中起作用,因为FirstPage和LastPage的操作正在改变。当这项工作完成时,您将需要一种不同的方法


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

此答案不是使用Ghostscript,而是使用
pdftk

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

pdftk             \
    A=file1.pdf   \
    B=file2.pdf   \
    C=file3.pdf   \
  cat             \
    Aend          \
    Bend          \
    Cend          \
  output          \
    result.pdf
这在运行
pdftk
时使用了两个小技巧:

  • 对于
    file1.pdf
    file2.pdf
    file3.pdf
  • 附加到句柄的
    end
    关键字表示最后一页
  • pdftk
    句柄可用于指示页面范围,例如
    C4-6
    (表示
    file3.pdf
    的第4-6页)或
    Bodd
    (表示
    file2.pdf
    的所有奇数页)

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

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

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