使用 GSView 5.0 打印后记

Printing postscript with GSView 5.0

我一直在使用 GSView 5.0 和 GhostScript 9.52 在牛皮纸上进行 postscript 打印。但是,今天 GSView 开始在我尝试打印的每个 .ps 文件上抛出错误代码。我正在使用 Windows 10 Pro,打印机是 Artisan 1430 上的 Eps。

错误如下:

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

我已尝试更改文件和不同打印机驱动程序的权限,但均无济于事。很抱歉,我无法详细描述这个问题,因为它很难表达。

好的...您最近必须更新到新版本的 Ghostscript。我可以重现您的问题,归根结底是 Ghostscript 的行为最近发生了(记录在案的)变化。

由于几年前 public 披露了使用 Ghostscript 的安全漏洞,当前版本(以及自 9.50 以来的任何版本)现在默认为 运行ning 安全模式.

当 运行在 SAFER 中运行时,Ghostscript 会阻止 PostScript 解释器访问文件系统。对于那些没有意识到问题的人; PostScript 是一种成熟的编程语言,在设计上允许程序访问底层文件系统。 SAFER 模式可防止这种情况发生,例如,恶意 PostScript 程序无法在您的计算机上 运行 任意代码。

似乎 GSView 使用 Ghostscript 的方式需要它读取要使用 PostScript 解释器打印的 PostScript 程序,而不是更常见的将输入文件指定为参数之一的做法。为简单起见,输入文件由 Ghostscript 可执行文件授予读取可用性。我怀疑 GSview 直接使用 DLL 而没有添加额外的信息。

现在有一些方法可以允许访问特定的文件或文件夹,这样现有的 PostScript 程序可以继续工作,但显然这需要对调用应用程序进行 一些 更改。 GSview 多年来一直没有改变,所以很明显它没有采取任何此类行动。

但是,您可以让 GSview 像以前一样工作。在选项 select 高级配置下。在出现的对话框中查找 'Ghostscript options' 文本框。在那里添加 -dNOSAFER,这应该让它再次工作,但如果 OS 打印子系统已停滞,您可能必须重新启动计算机。

是的,这确实会让您面临我上面提到的各种攻击,您应该只对您信任的 PostScript 程序执行此操作。