Ghostscript无法将PDF转换为PDF/A。注释问题

3
我正在尝试将PDF转换为PDF/A格式。每次都出现错误"GPL Ghostscript 9.19: Annotation set to non-printing, not permitted in PDF/A, reverting to normal PDF output"。该PDF文件是通过wkhtmltopdf从HTML生成的。由于该错误非常模糊,因此我已经针对PDF注释进行了一些研究。我确认该PDF没有注释,在尝试过展平注释(但实际上没有注释),以及使用-dShowAnnots=false开关后仍然无法解决问题。我还尝试了多种不同的PDF文件,但在所有文件中都遇到了同样的错误。执行转换的命令是“gs -dPDFA=2 -dNOOUTERSAVE -sProcessColorModel=DeviceRGB -sDEVICE=pdfwrite -o output.pdf /Users/work/Documents/Projects/pdf-generator-service-tests/PDFA_def.ps -dPDFACompatibilityPolicy=1 input.pdf”。我尝试使用wkhtmltopdf https://google.com putput.pdf从Google主页创建基本PDF页面,但仍然失败(这是我尝试转换的PDF文件示例,供其他人尝试复制问题)。

所以问题绝对是外部链接的问题。当我在几个不同的软件中检查PDF时,它没有标识外部链接为注释。我禁用了它们,然后它按预期通过并转换。我还注意到,当dPDFACompatibilityPolicy设置为1时,它实际上生成了一个PDF/A,我只是有点固执己见,没有注意到错误中的差异。谢谢大家! - Will H
3个回答

3
我认为这个错误非常具体;PDF/A不允许将注释设置为非打印状态。您没有提供导致问题的实际文件示例,因此我无法评论任何注释是否存在,但我向您保证,没有注释是不可能出现此消息的。
既然您已经将PDFACompatibility设置为1,我没有多少可以说的了。您可以打开一个错误报告并附上文件,或在此处发布链接。如果没有文件,我不能说太多。
哦,您没有说您使用的Ghostscript版本或来源。有时包装者会破坏一些东西,因此可能值得尝试从源代码构建。
一个要点是,在设置PDFACompatibility=1之前执行PDFA_def.ps文件,那可能行不通,您需要交换这两个步骤。你应该在输入任何内容或处理之前设置控件,否则可能会出现问题。

3
我使用gs(v9.21)将带有非打印注释(hyperref)的PDF转换为符合PDF/A标准的文件。输出文件中不会包含注释,但在我的情况下,这并不是一个问题。
我使用的命令是: gs -dPDFA=2 -dBATCH -dNOPAUSE -dPDFACompatibilityPolicy=1 -dUseCIEColor -sProcessColorModel=DeviceGray -sDEVICE=pdfwrite -sOutputFile=output_file.pdf input_file.pdf 注意:
- 使用-dPDFACompatibilityPolicy=1而不是-sPDFACompatibilityPolicy=1。后者不会强制gs省略注释,而前者会。 - 我使用-dUseCIEColor,因为PDF/A验证(https://www.pdf-online.com/osa/validate.aspx)失败,并出现与颜色空间相关的问题。此参数已过时,但我没有找到其他解决此问题的方法。有关详细信息,请参见Convert PS files to PDF/A via Ghostscript, color space problems。

你可能想要查看 https://superuser.com/a/1329773/279091,它可以在不使用“-dUseCIEColor”的情况下实现相同的结果。 - mmj

2

正如KenS所说,没有PDF文件我们很难了解具体情况,但考虑到你将Google首页转换为PDF时出现问题,我猜测是外部链接导致的。链接是注释,在PDF/A格式中不允许使用外部链接。任何在HTML中的链接转换成PDF后都会被视为外部链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接