如何使用ghostscript检查pdf是否已经转换为pdf/a?
How to use ghostscript to check if pdf is already converted to pdf/a?
我搜索了答案,但我所能找到的只是如何将 pdf 转换为 pdf/a,这正是我已经在做的事情。现在我需要查找pdf是否被转换以防止不必要的二次转换。
现在我正在使用 Aspose 检查 pdf 是否已转换,但它并不总是能正常工作。或者 pdfbox 或 itext 可能有不同的方法?
在此先感谢您的所有帮助。
Ghostscript 不是验证工具,它不会告诉您 PDF 文件是否是 PDF/a 文件。尤其是因为 Ghostscript 不关心。
[编辑以回答下面的评论]
您没有指定 ColorConversionStrategy,指定 ProcessColorModel 是不够的(实际上也不需要)。对于 PDF/A,您(通常)需要提供一个 ColorConversionStrategy,除非您绝对确定您的输入文件只使用与设备无关的颜色 spaces。
您的命令行似乎不包含 pdfa_def.ps 输入文件。这个文件很重要(你 必须 适当地修改它),如果你不提供这个或等效的编程,那么你的 PDF/A 文件将不包含 OutputIntent 并且,如果它使用任何设备颜色 space,将无效。
不要(真的,认真地,不要)使用 -dNOSAFER。对于 PDF 输入,不需要执行此操作,这会让您面临安全漏洞。
您的命令行包含 -c -quit
,这是不正确的,应该会导致错误。你的意思是 -c quit
并且你不需要那样做。别管它了。
有关创建 PDF/A 文件的文档可以在线 here
或 ghostpdl/doc/VectorDevices.htm#PDFA 中找到,请注意第 4 个要点;
Specify a PDF/A definition file before running the input document.
我搜索了答案,但我所能找到的只是如何将 pdf 转换为 pdf/a,这正是我已经在做的事情。现在我需要查找pdf是否被转换以防止不必要的二次转换。 现在我正在使用 Aspose 检查 pdf 是否已转换,但它并不总是能正常工作。或者 pdfbox 或 itext 可能有不同的方法?
在此先感谢您的所有帮助。
Ghostscript 不是验证工具,它不会告诉您 PDF 文件是否是 PDF/a 文件。尤其是因为 Ghostscript 不关心。
[编辑以回答下面的评论]
您没有指定 ColorConversionStrategy,指定 ProcessColorModel 是不够的(实际上也不需要)。对于 PDF/A,您(通常)需要提供一个 ColorConversionStrategy,除非您绝对确定您的输入文件只使用与设备无关的颜色 spaces。
您的命令行似乎不包含 pdfa_def.ps 输入文件。这个文件很重要(你 必须 适当地修改它),如果你不提供这个或等效的编程,那么你的 PDF/A 文件将不包含 OutputIntent 并且,如果它使用任何设备颜色 space,将无效。
不要(真的,认真地,不要)使用 -dNOSAFER。对于 PDF 输入,不需要执行此操作,这会让您面临安全漏洞。
您的命令行包含 -c -quit
,这是不正确的,应该会导致错误。你的意思是 -c quit
并且你不需要那样做。别管它了。
有关创建 PDF/A 文件的文档可以在线 here
或 ghostpdl/doc/VectorDevices.htm#PDFA 中找到,请注意第 4 个要点;
Specify a PDF/A definition file before running the input document.