Ghostscript -sPageList产生stackunderflow错误并退出

时间:2019-03-22 09:11:38

标签: ghostscript

我想使用带有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”

不起作用?

1 个答案:

答案 0 :(得分:1)

您不能使用PageList更改顺序,页数必须增加。

这是因为PostScript和PCL输入使用相同的语法,并且这些格式不是随机访问的,而是流式传输的,因此,经过第5页后,我们无法倒回流式并返回到它。 / p>

在第二种情况下,您多次运行输入文件,每次读取页面的一个子集。当然,您也可以使用PostScript和其他输入语言来做到这一点,但是自然地,它会更慢。