如何指定自动命名单个输出文件的偏移量?这可能也适用于其他程序,但我现在需要它为Ghostscript工作,并且可以提供我的示例命令以供参考。
以下命令将a.pdf的每个单独的页面输出为单独的.png文件(0.png,1.png,2.png等等...)我想要做的是先说一下23 .png,24.png,25.png等...有没有办法可以通过命令行传递这个?显然(%d,23).png不起作用,但也许有另一种方法可以做到这一点?
gswin32c -q -dNOPAUSE -sDEVICE=tiffg4 -sOutputFile=%d.png a.pdf -c quit
谢谢!
修改 看起来像-dFirstPage做了类似的事情来抵消多页输入的起始页面,但我似乎找不到这样的输出。
最终编辑: 我会把这个问题留给那些可能想要提出更好想法的人,但这就是我最终用Python做的事情。 (此方法可能适用于任何可以访问命令行的语言)
输出从23.png开始并循环直到a.pdf EOF
import os
from pyPdf import PdfFileReader
offset = 22
totalpages = PdfFileReader.getNumPages()
start = 1
while start <= totalpages:
os.command('gswin32c -q \
-dNOPAUSE \
-dFirstPage=start \
-dLastPage=start \
-sDEVICE=tiffg4 \
-sOutputFile='+str(start+offset)+'.png \
a.pdf \
-c \
quit')
start = start+1
答案 0 :(得分:0)
(顺便说一句,你不能使用-o %03d.png
用000.png
来启动输出文件 - 它将以001.png
作为第一页开头....另外,你的{{1无论您使用什么后缀输出文件,都会输出TIFF G4文件,而不是PNG文件。)
我只能想到一个难看的解决方法来实现你想要的。由于Ghostscript可以在同一个命令行中处理各种输入文件和命令行源,但仍然可以一次性写入输出,因此您可以在您感兴趣的文件之前预处理22页的文件:
-sDEVICE=tiffg4
现在只需删除前22个TIFF文件,真实PDF的第一页就在 gs \
-o %03.tiff \
-sDEVICE=tiffg4 \
22page.pdf \
the-real-pdf.pdf
。
另一种方法是这样做:
023.tiff
请参阅22 gs \
-o %03.tiff \
-sDEVICE=tiffg4 \
-c "showpage showpage showpage showpage" \
-c "showpage showpage showpage showpage" \
-c "showpage showpage showpage showpage" \
-c "showpage showpage showpage showpage" \
-c "showpage showpage" \
-f the-real-pdf.pdf
个命令?它导致Ghostscript在showpage
文件轮到之前处理22个空页的PostScript输入。甚至更好:
-f the-real-pdf.pdf
要为TIFF创建PNG文件,只需使用 gs \
-o %03.tiff \
-sDEVICE=tiffg4 \
-c "$(for i in $(seq 1 22); do echo showpage; done)" \
-f the-real-pdf
(或-sDEVICE=pngalpha
,pngmono
或png256
)...