Ghostscript 不会将 PDF 转换为 PDF/A。注释问题
Ghostscript won't convert PDF to PDF/A. Annotation Issue
我正在尝试将 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,但我在所有 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/A 不允许将注释设置为非打印。您没有包含导致问题的文件类型的实际示例,因此我无法对任何注释的存在发表评论,但我向您保证,如果没有注释,就不可能获得此消息。
既然您已经将 PDFACompatibility 设置为 1,那么我无话可说。您可以打开错误报告并将文件附加到那里,或者 post 一个 link 到这里。没有它我不能说太多。
哦,你没有说你使用的是哪个版本的 Ghostscript,或者你从哪里获得它。有时打包程序会破坏某些东西,因此 可能 值得尝试从源代码构建。
一分;在设置 PDFACompatibility=1 之前执行 PDFA_def.ps 文件,这可能不会起作用,您需要切换这两个。您应该在进行任何输入之前设置控件,否则可能会出错,尝试更改中途并不是一个好主意。
就像 KenS 所说的,没有 PDF 就很难知道任何事情,但是由于您在将 Google 主页转换为 PDF 时遇到问题,我怀疑它是外部 link 导致问题的原因。链接是注释,在 PDF/A 中,不允许使用外部 link。 HTML 中的任何 link 在转换为 PDF 时都将被视为外部文件。
我使用 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
因为 pdfa 验证 (https://www.pdf-online.com/osa/validate.aspx) failed with an issue related to the color space. This parameter is deprecated but I did not find any other way around this issue. For more details, see Convert PS files to PDF/A via Ghostscript, color space problems
我正在尝试将 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,但我在所有 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/A 不允许将注释设置为非打印。您没有包含导致问题的文件类型的实际示例,因此我无法对任何注释的存在发表评论,但我向您保证,如果没有注释,就不可能获得此消息。
既然您已经将 PDFACompatibility 设置为 1,那么我无话可说。您可以打开错误报告并将文件附加到那里,或者 post 一个 link 到这里。没有它我不能说太多。
哦,你没有说你使用的是哪个版本的 Ghostscript,或者你从哪里获得它。有时打包程序会破坏某些东西,因此 可能 值得尝试从源代码构建。
一分;在设置 PDFACompatibility=1 之前执行 PDFA_def.ps 文件,这可能不会起作用,您需要切换这两个。您应该在进行任何输入之前设置控件,否则可能会出错,尝试更改中途并不是一个好主意。
就像 KenS 所说的,没有 PDF 就很难知道任何事情,但是由于您在将 Google 主页转换为 PDF 时遇到问题,我怀疑它是外部 link 导致问题的原因。链接是注释,在 PDF/A 中,不允许使用外部 link。 HTML 中的任何 link 在转换为 PDF 时都将被视为外部文件。
我使用 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
因为 pdfa 验证 (https://www.pdf-online.com/osa/validate.aspx) failed with an issue related to the color space. This parameter is deprecated but I did not find any other way around this issue. For more details, see Convert PS files to PDF/A via Ghostscript, color space problems