我想使用带有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
我产生错误:
****错误:范围检查处理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”
不起作用?
答案 0 :(得分:1)
您不能使用PageList更改顺序,页数必须增加。
这是因为PostScript和PCL输入使用相同的语法,并且这些格式不是随机访问的,而是流式传输的,因此,经过第5页后,我们无法倒回流式并返回到它。 / p>
在第二种情况下,您多次运行输入文件,每次读取页面的一个子集。当然,您也可以使用PostScript和其他输入语言来做到这一点,但是自然地,它会更慢。