【发布时间】:2018-09-11 09:16:40
【问题描述】:
ghostcript(9.21 版)忽略 pdf 文件中的附件
使用的命令 cmd /c %GHOST_SCRIPT_EXE% -dPDFA=2 -dBATCH -dNOPAUSE -dSubsetFonts=false -dPDFSETTINGS=/printer -sProcessColorModel=DeviceRGB -sDEVICE=pdfwrite -dCompatibilityLevel=1.7 -dOptimize=true -dPDFACompatibilityPolicy=1 -dAutoRotatePages=/None -sOutputFile ="out.pdf" "test.pdf"
【问题讨论】:
-
您希望 Ghostscript 对附件做什么?答案是肯定的,因为 Ghostscript 是为打印而设计的,它不支持 PDF 的很多交互功能。由于附件可以是任何东西,Ghostscript 不会尝试对它们做任何事情。无论如何,除非您非常幸运,否则您的命令行不会创建有效的 PDF/A 文件,因为您没有遵循文档中的指导。
-
感谢@KenS 的反馈。我也想将附加的 pdf 与转换后的 pdfa 一起保留。这可能吗?
-
任何事情都是“可能的”,这是一个简单的编程问题......在我看来,这可能应该已经工作了(在当前版本的 Ghostscript,9.23 中)但是因为你还没有提供了一个例子,我无法测试它。我不确定这样做的含义,因为 (PDF/A-2) 规范谈到了“符合 PDF/A 的文件附件”,但没有说明这实际上意味着什么。该规范描述了嵌入的文件,而不是附加的文件。可能只有 PDF/A 文件作为附件是合法的。检查这将是“困难的”。
-
@KenS Ghostscript 9.23 也有同样的问题。正如您所看到的 out.png,转换后的文件没有附加 1.pdf。 (附件图标可见,但实际文件丢失)。
-
好吧,在没有示例文件的情况下,我无话可说。 Ghostscript 中 PDF 解释器的当前实现对 FileAttachment 注释执行操作,如果生成的注释不正确,则可能是因为从它生成的 pdfmark 不正确,或者重写注释的 pdfwrite 代码有错误。 FileAttachment 注释在 ghostpdl/Resource/Init/pdf_draw.ps 中处理,因此您可以对其进行调试以查看生成的 pdfmark 并将其与原始和创建的 PDF 文件进行比较。
标签: ghostscript