GhostScript (9.20, AIX) 将 PDF 转换为 PCL 时出错

Posted

技术标签:

【中文标题】GhostScript (9.20, AIX) 将 PDF 转换为 PCL 时出错【英文标题】:GhostScript (9.20, AIX) error converting PDF to PCL 【发布时间】:2017-03-06 14:51:07 【问题描述】:

GhostScript 9.20 在尝试将 1 页 PDF 转换为 PCL 时出现以下错误:

**** Error reading a content stream. The page may be incomplete.
               Output may be incorrect.
Error: /typecheck in --run--
Operand stack:
   --dict:4/4(L)--   9   11150   9   0   --nostringval--   AP   --nostringval--   BS   --nostringval--   DA   (/Helv 10 Tf 0 g)   F   4   FT   Tx   Ff   12587008   MK   --nostringval--   P   --nostringval--   Rect   --nostringval--   Subtype   Widget   T   (MissingInformation)   Type   V   --nostringval--   Annot
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1983   1   3   %oparray_pop   1982   1   3   %oparray_pop   1966   1   3   %oparray_pop   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   %array_continue   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1205/1684(ro)(G)--   --dict:1/20(G)--   --dict:83/200(L)--   --dict:83/200(L)--   --dict:135/256(ro)(G)--   --dict:291/300(ro)(G)--   --dict:30/32(L)--
Current allocation mode is local
GPL Ghostscript 9.20: Unrecoverable error, exit code 1

它在 Unix-AIX 中执行,如下:

gs -dSAFER -sDEVICE=pxlmono -sPAPERSIZE=letter -dFIXEDMEDIA -dPDFFitPage

Sample file that fails

任何想法将不胜感激!

谢谢,

罗恩

【问题讨论】:

我可以简单地用gs gsFail.pdf 复制它。也许说“页面可能不完整”是正确的? 【参考方案1】:

您的 PDF 文件有错误。它包含一个注释,它具有(对象 9):

/V /APPTRIAGE#20CASEONED#3A#0D#0D...Part#20II#3A#20DrugExperimentation#20-#20Drugs#2FMedication#20Not#20Prescribed#3A#20Was#20doctor#20seen#3F#20Provide#20detail #20if#20yes.#0D#0D...Part#20II#3A#20AlcoholDrugTreatment#20-#20Alcohol#20Abuse#20Treatment#3A#20Was#20doctor#20seen#3F#20Provide#20detail#20if#20yes.#0D# 0D...部分#20II#3A#20HivAids#20-#20HIV#3A#20Was#20doctor#20seen#3F#20Provide#20detail#20if#20yes.#0D#0D...部分#20II#3A#20HivAids# 20-#20AIDS#3A#20Was#20doctor#20seen#3F#20Provide#20detail#20if#20yes.#0D#0D...Part#20II#3A#20LiverDisease#20-#20Esophagus#20Disorder#3A#20Was#20doctor #20seen#3F#20Provide#20detail#20if#20yes.#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling#20-#20Stress#3A#20Have#20you#20ever#20received#20disability# 20or#20missed#20work#20due#20to#20psychiatric#20reasons#3F#20Provide#20details#20if#20yes.#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling#20-#20Stress#3A #20Do#20you#20see#20a#20psychiatrist#20or#20counselor#3F#20Provide#20details#20if#20yes .#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling#20-#20Stress#3A#20Was#20doctor#20seen#3F#20Provide#20detail#20if#20yes.#0D#0D.. .Part#20II#3A#20MentalDisorder#20-#20Counseling#20-#20Stress#3A#20support#20group#20member#20info#20missing#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling# 20-#20压力#3A#20date#20diagnosed#20missing#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling#20-#20Depression#3A#20Have#20you#20ever#20received#20disability#20or #20missed#20work#20due#20to#20psychiatric#20reasons#3F#20Provide#20details#20if#20yes.#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling#20-#20Depression#3A# 20Do#20you#20see#20a#20psychiatrist#20or#20counselor#3F#20Provide#20details#20if#20yes.#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling#20-#20Depression#3A #20Was#20doctor#20seen#3F#20Provide#20detail#20if#20yes.#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling#20-#20Depression#3A#20support#20group#20member# 20info#20missing#0D#0D...Part#20II#3A#20MentalDiso rder#20-#20Counseling#20-#20Depression#3A#20date#20diagnosed#20missing#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling#20-#20Anxiety#3A#20Have#20you# 20ever#20received#20disability#20or#20missed#20work#20due#20to#20psychiatric#20reasons#3F#20Provide#20details#20if#20yes.#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling# 20-#20Anxiety#3A#20Do#20you#20see#20a#20psychiatrist#20or#20counselor#3F#20Provide#20details#20if#20yes.#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling #20-#20Anxiety#3A#20Was#20doctor#20seen#3F#20Provide#20detail#20if#20yes.#0D#0D...Part#20II#3A#20MentalDisorder#20-#20Counseling#20-#20Anxiety#3A #20support#20group#20member#20info#20missing#0D#0D#28Continued#20on#20next#20page#29

注解的 /V 字段可以是文本字符串或流。这个注解有一个名字对象。所以它立即不正确。此外,名称对象受到 PDF 参考附录 C 中给出的 127 字节的实现限制,这比这个怪物要少得多。 Ghostscript 允许更大的名称,但不能这么大。

即使我“修复”了这个问题,Ghostscript 仍然不喜欢该文件,如果您在 Acrobat 中打开该文件,然后将其关闭,它会提供“保存更改”,这很好地表明 Acrobat 已经默默地忽略一个错误。

事实上,该文件已被编辑,而该编辑进一步破坏了该文件。

简而言之,您的文件已损坏,这就是它不起作用的原因。

【讨论】:

以上是关于GhostScript (9.20, AIX) 将 PDF 转换为 PCL 时出错的主要内容,如果未能解决你的问题,请参考以下文章

9.20 Magical multisets

使用 GhostScript 将图像转换为 PDF

ImageMagick 中 GhostScript 的文件路径

网易视频云发布会大猜想:9.20将以何种姿态亮相舞台

编译时将字体添加到 Ghostscript 9.15

Ghostscript:将 PDF 转换为 CMYK EPS