使用GhostScript生成Factur-X/ZUGFeRD文件遇ISO 19005-3:2012校验错误求助
解决GhostScript生成Factur-X/ZUGFeRD文件的VeraPDF校验错误
问题概述
使用GhostScript生成合规Factur-X/ZUGFeRD文件时,VeraPDF或在线验证器返回如下错误:
DestOutputProfile键对应的配置文件流必须是输出配置文件(Device Class = "prtr")或显示器配置文件(Device Class = "mntr"),且配置文件的色彩空间需为"GRAY"、"RGB"或"CMYK"。
当前使用的命令行:
gswin64 --permit-file-read=C:\source\repos\test_gs\ -sDEVICE=pdfwrite -dPDFA=3 -sColorConversionStrategy=RGB -sZUGFeRDXMLFile=C:\source\repos\test_gs\xmlfile.xml -sZUGFeRDProfile=C:\source\repos\test_gs\sRGB_v4_ICC_preference.icc -sZUGFeRDVersion=2p1 -sZUGFeRDConformanceLevel=BASIC -o C:\source\repos\test_gs\output.pdf C:\source\repos\test_gs\zugferd.ps C:\source\repos\test_gs\input.pdf
其中zugferd.ps为GhostScript/lib目录默认文件,曾尝试sRGB_v4_ICC_preference.icc和sRGB2014.icc,问题未解决。
解决方案
1. 更换合规的ICC配置文件
直接使用GhostScript安装目录下lib/iccprofiles/中的sRGB.icc文件,该配置文件的Device Class为mntr(显示器类),色彩空间为RGB,完全符合校验要求。
2. 调整命令行参数
修改命令行,添加强制覆盖ICC的参数,并调整输入文件顺序:
gswin64 --permit-file-read=C:\source\repos\test_gs\ -sDEVICE=pdfwrite -dPDFA=3 -dOverrideICC -sColorConversionStrategy=RGB -sOutputICCProfile=C:\path\to\GhostScript\lib\iccprofiles\sRGB.icc -sZUGFeRDXMLFile=C:\source\repos\test_gs\xmlfile.xml -sZUGFeRDProfile=C:\path\to\GhostScript\lib\iccprofiles\sRGB.icc -sZUGFeRDVersion=2p1 -sZUGFeRDConformanceLevel=BASIC -o C:\source\repos\test_gs\output.pdf C:\source\repos\test_gs\input.pdf C:\source\repos\test_gs\zugferd.ps
参数说明:
-dOverrideICC:强制忽略原有PDF的色彩配置,使用指定的ICC文件-sOutputICCProfile:明确指定PDF/A的输出色彩配置,确保DestOutputProfile符合校验规则- 调整输入顺序:将
zugferd.ps放在输入PDF之后,保证脚本正确处理PDF内容
3. 验证结果
重新生成PDF后,用VeraPDF或在线验证器校验,确认DestOutputProfile相关错误已修复。
内容的提问来源于stack exchange,提问作者aprotiere
相关产品推荐
相关产品推荐

