You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌入文档触发Ghostscript /rangecheck错误的原因及非降级解决咨询

Ghostscript 10.05.0 pdfmark /EMBED报错问题处理

问题原因

Ghostscript 10.05.0对pdfmark指令的参数校验逻辑做了更新,尤其针对/EMBED指令中的/Name字段:
旧版本(如10.04.0)允许使用括号包裹的字符串作为/Name的值,但新版本严格遵循PDF规范,要求/Name必须是合法的PDF Name对象——即需以/开头,不能直接使用带空格的字符串(若需保留空格,需用#20转义)。你的代码中/Name (Unicode Unique Name)使用了不符合规范的字符串格式,触发了rangecheck错误。

解决办法(无需降级版本)

方案1:修正/Name为合法的PDF Name格式

将原代码中的字符串格式(Unicode Unique Name)替换为转义后的Name对象,示例如下:

[ /Name /Unicode#20Unique#20Name
  /FS   << /Type /Filespec
            /F     (myfile.txt)
            /EF    << /F {fstream} >>
        >>                                   /EMBED pdfmark

也可直接去掉空格简化名称:

[ /Name /UnicodeUniqueName
  /FS   << /Type /Filespec
            /F     (myfile.txt)
            /EF    << /F {fstream} >>
        >>                                   /EMBED pdfmark

方案2:移除可选的/Name参数

如果不需要为嵌入式文件指定唯一标识符,可直接删除/Name (Unicode Unique Name)这一行,因为该参数属于可选字段。修改后的代码片段:

[ /FS   << /Type /Filespec
            /F     (myfile.txt)
            /EF    << /F {fstream} >>
        >>                                   /EMBED pdfmark

修改完成后,重新执行原命令即可正常生成PDF:

gs -sDEVICE=pdfwrite -dNOSAFER -dNOPAUSE -sOutputFile=dummy.pdf <example.ps

内容的提问来源于stack exchange,提问作者bertramscharpf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:58:25