【问题标题】:How to use ghostscript to check if pdf is already converted to pdf/a?如何使用ghostscript检查pdf是否已经转换为pdf/a?
【发布时间】:2020-07-13 05:10:13
【问题描述】:

我搜索了一个答案,但我能找到的只是如何将 pdf 转换为 pdf/a,这是我已经在做的。现在我需要查找pdf是否被转换以防止不必要的第二次转换。 现在我正在使用 Aspose 来检查 pdf 是否被转换,但它并不总是正常工作。或者,pdfbox 或 itext 可能有不同的方法?

提前感谢所有帮助。

【问题讨论】:

    标签: pdf itext pdfbox ghostscript aspose.pdf


    【解决方案1】:

    Ghostscript 不是验证工具,它不会告诉您 PDF 文件是否为 PDF/a 文件。尤其是因为 Ghostscript 不在乎。

    [编辑以回答下面的评论]

    您尚未指定 ColorConversionStrategy,仅指定 ProcessColorModel 是不够的(实际上也不是必需的)。对于 PDF/A,您(通常)需要提供 ColorConversionStrategy,除非您绝对确定您的输入文件专门使用与设备无关的颜色空间。

    您的命令行似乎不包含 pdfa_def.ps 输入文件。此文件很重要(您必须对其进行适当修改),如果您不提供此文件或等效程序,那么您的 PDF/A 文件将不包含 OutputIntent,并且如果它使用任何设备颜色空间,将无效。

    不要(真的,真的,不要)使用 -dNOSAFER。对于 PDF 输入,应该没有任何必要这样做,这会使您面临安全漏洞。

    您的命令行包含不正确的-c -quit,应该会导致错误。你的意思是-c quit,无论如何你都不需要这样做。把它放在一边。

    有关创建 PDF/A 文件的文档可以在线找到here 或 ghostpdl/doc/VectorDevices.htm#PDFA 注意第 4 个要点;

    在运行输入文档之前指定一个 PDF/A 定义文件。

    【讨论】:

    • 是的,我刚刚检查了 VeraPDF。但是我不能让它与 gs 一起工作,当我用 Ghostscript 创建 PDF/A-3b 时总是会出现一些验证错误。例如:“仅当使用 DeviceGray 颜色空间时设置了与设备无关的 DefaultGray 颜色空间,或者存在 PDF/A OutputIntent 时,才应使用 DeviceGray”我使用此命令:gswin64c -dNOSAFER -sDEVICE=pdfwrite - dPDFA=3 -sProcessColorModel=DeviceRGB -dNOPAUSE -dBATCH -dPDFACompatibilityPolicy=1 -sOutputFile="path to testPdfa.pdf" "path to test.pdf" -c -quit
    • 我的回复太长,无法发表评论,所以我编辑了上面的答案。
    • 我很高兴听到它有效。我可以请你接受答案吗?
    猜你喜欢
    • 2023-04-08
    • 2016-06-15
    • 2010-12-12
    • 2020-03-07
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 2014-11-20
    • 2016-05-09
    相关资源
    最近更新 更多