如何解决Ghostscript -d vs -s命令行参数
我最近将Ghostscript从9.10升级到9.53.3(也尝试过9.50)。运行多年的脚本开始失败,
Unrecoverable error: rangecheck in .putdeviceprops
经过一些研究和反复试验后,Ghostscript似乎将某些命令行开关从“ -s”更改为“ -d”。例如:
-sGrayImageResolution=600
现在会出错,但-dGrayImageResolution=600
不会。
某些开关似乎接受任何一种形式。例如:
-sColorImageResolution=600
和-dColorImageResolution=600
都可以工作。
(注意:当我说“工作”时,我是说他们不会抛出错误。)
我有2个问题
-
在哪里可以找到Ghostscript命令行参数的完整列表? Ghostscript文档似乎不完整。
-
-s
和-d
之间的区别是什么? (这实际上只是一个好奇心问题)
谢谢
解决方法
ColorImageResolution和GrayImageResolution是在VectorDevices.htm#PDFWRITE中找到的PostScript蒸馏器参数,因此可与-sDEVICE = pdfwrite的PostScript代码中的setdistillerparams和currentdistillerparams一起使用。另请参见TN 5151 Acrobat Distiller参数。例如:
<< /MonoImageResolution 72 >> setdistillerparams
编辑:这里还有更多:distillerparams
可以在系统词典中定义某些设置,而不会出错,除非它们从未用于任何用途。确保检查所有文档。通过在ghostscript资源/初始化文件中搜索,可以找到文档中未列出的一些设置,特别是对于高级用户。其中一些是ghostscript特有的,并且超出了普通PostScript。
这是来自幽灵脚本Use.htm#Options的:
-Dname -dname 在systemdict中使用value = true定义一个名称。
-Dname =令牌 -dname =令牌 在systemdict中使用给定值定义一个名称。该值必须是有效的PostScript令牌(由令牌运算符定义)。如果 令牌是非文字名称,必须为true,false或null。它是 建议仅将其用于简单值-使用-c(以上) 用于复杂值,例如过程,数组或字典。 请注意,这些值是在systemdict中的其他名称之前定义的,因此任何通常与systemdict中的名称冲突的名称 在解释器中将被普通定义替换 初始化。
-Sname =字符串 -sname =字符串 在systemdict中定义一个名称,并使用给定的字符串作为值。这与-d不同。例如,命令行上的-dXYZ = 35是 相当于程序片段
/XYZ 35 def
-sXYZ = 35等效于
/XYZ (35) def
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。