我想用带有ghostscript的-sPageList input.pdf文件以不同的顺序打印某些页面
> "gswin64c.exe" -dFIXEDMEDIA -dPDFFitPage -sPAPERSIZE=a4 -dMaxBitmap=300 -dCompatibilityLevel=1.7 -dPDFSETTINGS=/ebook -dAutoRotatePages=/None -sFONTPATH="C:\Windows\Fonts" -sDEVICE=pdfwrite -sPageList=2,4,9-11,12-13,5-8 -o out.pdf in.pdf
我产生错误:
****错误:rangecheck处理PageList ****无法打开初始设备,退出。不可恢复的错误:.quit操作数堆栈中的stackunderflow:1
虽然使用以下代码调用相同,但它可以正常工作。
"gswin64c.exe" -dFIXEDMEDIA -dPDFFitPage -sPAPERSIZE=a4 -dMaxBitmap=300 -dCompatibilityLevel=1.7 -dPDFSETTINGS=/ebook -dAutoRotatePages=/None -sFONTPATH="C:\Windows\Fonts" -sDEVICE=pdfwrite -dFirstPage=2 -dLastPage=2 in.pdf -dFirstPage=4 -dLastPage=4 in.pdf -dFirstPage=9 -dLastPage=11 in.pdf -dFirstPage=12 -dLastPage=13 in.pdf -dFirstPage=5 -dLastPage=8 in.pdf -o out.pdf in.pdf
任何人都可以说出原因
-sPageList = 2.4.9-11.12-13.5-8
要么
-sPageList =“2,4,9-11,12-13,5-8”
不起作用?
您不能使用PageList来改变顺序,页码必须增加。
这是因为PostScript和PCL输入使用相同的语法,并且这些格式不是随机访问,它们是流式传输的,所以在超过第5页后我们无法回放流并返回到它。
在第二种情况下,您每次都在运行输入文件,每次都在读取页面子集。当然,你也可以用PostScript和其他输入语言来做到这一点,但自然它会慢一些。