在 python 中使用 ghostscript 和 facturx 库创建符合 factur-x PDF/A-3 (Zugferd)

问题描述

首先,我阅读了此处的文档 Creating a ZUGFeRD pdf 以获得 Zugferd PDF/A-3 pdf 兼容:

  1. 创建了一个自定义 .ps,您可以在此处查看 PDFA_def.ps,如 Zugferd 文档中所述,并使用此颜色配置文件 sRGB.icc
  2. 我想将此 pdf 发票(样本)RE.__2021_0002.pdf 转换为符合 PDF/A-3 标准
  3. 为了将此示例发票转换为 Zugferd PDF/A-3 兼容,我使用了 ghostscript gs -dBATCH -dNOSAFER --permit-file-read=${PWD} -sDEVICE=pdfwrite -dPDFA=3 -sColorConversionStrategy=RGB -sPDFACompatibilityPolicy=1 -sZUGFeRDXMLFile=${PWD}/factur-x.xml -sOutputICCProfile=${PWD}/sRGB.icc -sOutputFile=${PWD}/RE.__2021_0002_pdf3a.pdf ${PWD}/PDFA_def.ps ${PWD}/RE.__2021_0002.pdf 中的此命令
  4. 我使用 veraPDF 检查生成的 pdf 文件是否符合 PDF/A-3 标准,但结果表明它不符合 PDF/A-3

    enter image description here

然后我在 python 中使用 facturx 库来生成 RE.__2021_0002_factur-x_embedded.pdf 发票,其中嵌入了 factur-x.xml 然后我使用了 ghostscript 中的这个命令将其转换为符合 PDF/A-3 的 gs -dPDFA=3 -dBATCH -dnopAUSE -dNOOUTERSAVE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=RE.__2021_0002_factur-x_embedded_pdf3a.pdf RE.__2021_0002_factur-x_embedded.pdf>

但不幸的是,生成的 pdf 不符合 PDF/A-3

enter image description here

并且在执行此命令后它也丢失了嵌入的 factur-x.xml。

我检查了 StackOverflow 中关于此主题的大部分问题,例如 here,并尝试了命令并阅读了评论,但它也不起作用。

更新生成的 pdf 与 PDF/A-3a 和 PDF/A-3b 都不兼容。

我需要知道如何正确使 pdf 发票符合 PDF/A-3 标准?

谢谢。

解决方法

在阅读我的回答之前,还请考虑查看@KenS 对我的问题的评论。 感谢@KenS 的贡献! 我可以使用命令将常规 pdf 转换为 PDF/A-3b 并且它有效:

gs -dPDFA=3 -dBATCH -dNOPAUSE -dNOSAFER -sColorConversionStrategy=UseDeviceIndependentColor -sDEVICE=pdfwrite -dPDFACompatibilityPolicy=3 -sOutputFile=<outputfile> <inputfile>

我根据@exa 的答案 here 使用了 -dPDFACompatibilityPolicy=3 所以对我来说,问题是通过使用选项 -sColorConversionStrategy=UseDeviceIndependentColor

解决的

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...