Ghostscript -sPageList产生stackunderflow错误并退出

问题描述 投票:0回答:1

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

不起作用?

ghostscript
1个回答
1
投票

您不能使用PageList来改变顺序,页码必须增加。

这是因为PostScript和PCL输入使用相同的语法,并且这些格式不是随机访问,它们是流式传输的,所以在超过第5页后我们无法回放流并返回到它。

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

© www.soinside.com 2019 - 2024. All rights reserved.