我想在Windows命令中仅打印一批.pdf文件的最后一页并将它们组合起来。
每个.pdf文件的页数都有所不同。
我可以用
确定最后一页gs -q -c "(file.pdf) (r) file runpdfbegin pdfpagecount =" -f file.pdf
但它们如何打印并与Ghostscript结合使用?
答案 0 :(得分:1)
你不能简单地说' LastPage'您需要单独运行每个文件并在每个文件之间更改FirstPage和LastPage。我还没有尝试过,但有点像:
gs -dFirstPage=10 -dLastPage=10 file1.pdf -dFirstPage=2 -dLastPage=2 file2.pdf....
可能会奏效。当然,您需要为每个文件更正FirstPage和LastPage。这几乎肯定不会在未来的版本中工作,因为FirstPage和LastPage的行为正在发生变化。该工作完成后,您将需要一种不同的方法。
您可以编写一个PostScript程序,该程序打开每组PDF文件,确定每个文件的最后一页(使用您已有的代码),并在执行文件之前设置FirstPage和LastPage再次渲染它。
答案 1 :(得分:1)
这个答案不是使用Ghostscript,而是pdftk
。
对于手头的任务,这是更好的工具。 示例命令:
pdftk \
A=file1.pdf \
B=file2.pdf \
C=file3.pdf \
cat \
Aend \
Bend \
Cend \
output \
result.pdf
这在运行pdftk
时使用了2个小技巧:
A
,B
和{{处理' C
,file1.pdf
和file2.pdf
1}} file3.pdf
关键字以指示最后一页。 end
个句柄可用于指示页面范围,例如pdftk
(意为C4-6
的第4-6页)或{{1 (意思是file3.pdf
的所有奇数页)。
通过查看Bodd
的输出来查找更多选项。
通常,对此特定类型的作业使用file2.pdf
要比使用Ghostscript快得多。
如果您需要将Ghostscript用于其他功能(即它每次写入PDF输出时基本上构建一个全新的PDF文件),您仍然可以通过pdftk --help
运行Ghostscript的。我的猜测是,即使pdftk
+ result.pdf
次运行的总时间也低于让pdftk
单独完成所有工作。