使用 GSView 5.0 打印后记
Posted
技术标签:
【中文标题】使用 GSView 5.0 打印后记【英文标题】:Printing postscript with GSView 5.0 【发布时间】:2020-06-24 22:42:09 【问题描述】:我一直在使用 GSView 5.0 和 GhostScript 9.52 在牛皮纸上进行 postscript 打印。但是,今天 GSView 开始在我尝试打印的每个 .ps 文件上抛出错误代码。我使用的是 Windows 10 Pro,打印机是 Epson Artisan 1430。
错误如下:
GPL Ghostscript 9.52: **** Could not open file 00000e60.
Unrecoverable error: invalidfileaccess in showpage
Operand stack:
--nostringval-- 1 true
gsapi_execute_cont returns -9
gsapi_exit returns 0
我已尝试更改文件和不同打印机驱动程序的权限,但无济于事。很抱歉,我无法更详细地描述这个问题,因为它很难表达。
【问题讨论】:
如果这是一个突然的变化,那么一定是有什么变化导致了它。也许你的操作系统已经更新或什么的。但是,错误消息表明 GSView 5 中存在某种问题,因为文件名更像是内存地址。我假设您的 PostScript 文件当然不称为 00000e60,它可能是。如果您要详细说明您实际在做什么,这可能会有所帮助;例如,带有 GSView 5 的命令行(或您所采取的步骤的描述)。我在这里能真正告诉你的是文件名看起来很可疑。 【参考方案1】:好的...您必须最近更新到新版本的 Ghostscript。我可以重现您的问题,这归结为 Ghostscript 最近(记录在案)的行为变化。
由于几年前公开披露了使用 Ghostscript 的安全漏洞,当前版本(以及 9.50 之后的任何版本)现在默认以 SAFER 模式运行。
在 SAFER 中运行时,Ghostscript 会阻止 PostScript 解释器访问文件系统。对于那些不知道这个问题的人; PostScript 是一种成熟的编程语言,并且在设计上允许程序访问底层文件系统。 SAFER 模式可以防止这种情况发生,例如恶意 PostScript 程序无法在您的计算机上运行任意代码。
似乎 GSView 使用 Ghostscript 的方式要求它读取要使用 PostScript 解释器打印的 PostScript 程序,而不是将输入文件指定为参数之一的更正常做法。为简单起见,Ghostscript 可执行文件授予输入文件读取可用性。我怀疑 GSview 是直接使用 DLL 而没有添加额外的信息。
现在有一些方法可以允许访问特定文件或文件夹,以便现有 PostScript 程序可以继续工作,但显然这需要对调用应用程序进行一些更改。从字面上看,GSview 多年来一直没有改变,所以显然它没有采取任何此类行动。
但是,您可以让 GSview 像以前一样工作。在选项下选择高级配置。在出现的对话框中查找“Ghostscript 选项”文本框。在那里添加 -dNOSAFER,它应该可以再次工作,但如果操作系统打印子系统停止,您可能需要重新启动计算机。
是的,这确实让您接触到我上面提到的各种漏洞,您应该只使用您信任的 PostScript 程序来执行此操作。
【讨论】:
非常感谢。我们确实更新到 Ghostscript 9.52。现在一切似乎都在工作。我会牢记未来的安全漏洞。以上是关于使用 GSView 5.0 打印后记的主要内容,如果未能解决你的问题,请参考以下文章