Ghostscript 输出到文件:啥可能导致此错误?

Posted

技术标签:

【中文标题】Ghostscript 输出到文件:啥可能导致此错误?【英文标题】:Ghostscript output to file: what could cause this error?Ghostscript 输出到文件:什么可能导致此错误? 【发布时间】:2017-02-27 15:57:58 【问题描述】:

我正在尝试生成用于从 Ghostscript 程序打印地图的文件。它从一个输入文件中读取数据,该文件有 1320 个经纬度坐标,每行一个,像这样

-92.32 48.24 -88.13 48.92 -83.11 46.27 -81.66 44.76 -82.09 42.29

使用以下代码打开并读取文件:

/ifile (/home/Harry/Mercator/world.dat) (r) 文件定义 ifile 的读取行

使用gs Arc17.ps 运行程序可以得到我想要的输出,没有问题

但是,当我尝试使用以下内容获取图像文件时:

gs -dSAFER -dBATCH -dNOPAUSE -sPAPERSIZE=a4 -sDEVICE=png16mdGraphicsAlphaBits=4 -sOutputFile=Arc17.png Arc17.ps

(从https://ghostscript.com/doc/current/Devices.htm#Measurements 复制的命令,第 3.1 节“PNG 文件格式”我收到此错误

Error: /invalidfileaccess in --file--
Operand stack:
   ifile   (/home/Harry/Mercator/world.dat)   (r)

请谁能解释一下并告诉我该怎么做?我很乐意提供更多详细信息,但目前还不确定要包括哪些内容。

【问题讨论】:

【参考方案1】:

出于安全原因,您正在使用 -dSAFER 专门限制任意文件访问。当 -dSAFER 为真时,您可能无法从文件系统中的任意位置打开/读取/写入。

如果您想这样做,请设置 -dNOSAFER(或不设置 SAFER)。

invalidfileaccess 错误的含义几乎与它所说的完全一样,试图访问一个文件,并且该访问是非法的。

该命令行中的各种开关在您引用的同一文档中进行了说明,主要在“Use.htm”文件中。

【讨论】:

谢谢肯斯。现在你已经指出了它是如此明显,但不知道从哪里开始,我被细节所淹没。现在完美的结果。太棒了,希望我能提高分数。

以上是关于Ghostscript 输出到文件:啥可能导致此错误?的主要内容,如果未能解决你的问题,请参考以下文章

ghostscript 命令行参数输出文件名更改

具有原始文件名的 GhostScript 输出文件

如何更改 Ghostscript 输出文件(在打印机后台处理程序中)

如何使用 GhostScript 设置 PDF 文件的输出图像大小限制

通过子进程调用 GhostScript 无法创建输出文件

如何使 ghostscript 将 postscript 文件中的单个特定页面输出为 png?