You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Ghostscript生成Factur-X格式PDF时XML文件无法嵌入

解决Ghostscript嵌入XML生成Factur-X PDF失败的问题

检查PDFA_def.ps的嵌入配置

  • 要在PDFA_def.ps里正确定义XML附件参数,关键代码得包含:

    /FacturXMetadata <<
      /Type /Metadata
      /Subtype /XML
      /AFRelationship /Data
      /F (factur-x.xml)
      /UF (factur-x.xml)
      /Desc (Factur-X Invoice Metadata)
    >> def
    
    /PDFXMetadata FacturXMetadata def
    

    注意/F和/UF得指向XML文件的绝对路径,别用相对路径,不然Ghostscript可能找不到文件。

  • 确认在pdfa_def.ps的/OutputIntents配置之后,加上附件调用的逻辑:

    /DOCINFO pdfmark
    [ /Subtype /XML
      /Name (Factur-X)
      /AFRelationship /Data
      /F (factur-x.xml)
      /UF (factur-x.xml)
      pdfmark
    

验证Ghostscript命令参数

  • 调用Ghostscript时,得明确指定pdfa_def.ps的路径,同时启用PDF/A-3相关参数:
    gs -dPDFA=3 -dPDFACompatibilityPolicy=1 -sOutputFile=output_facturx.pdf -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sColorConversionStrategy=UseDeviceIndependentColor -sPDFA_def=/path/to/PDFA_def.ps input.pdf
    
    重点:-dPDFA=3是强制生成PDF/A-3,-sPDFA_def必须指向正确的配置文件路径。

对比元数据差异

  • 用pdftk或qpdf这类工具提取合规Factur-X PDF和自己生成的PDF的元数据做对比:
    pdftk compliant.pdf dump_data output compliant_metadata.txt
    pdftk your_output.pdf dump_data output your_metadata.txt
    
  • 重点查这几个元数据项:
    • InfoKey: Metadata有没有XML附件的引用
    • InfoKey: AF(附件关联)里是否存在Factur-X条目
    • InfoKey: UF是否正确指向XML文件名

确认XML文件合规性

  • 要保证XML文件符合Factur-X的EN 16931 schema规范,别因为文件格式错了导致Ghostscript跳过嵌入。
  • 可以用Factur-X验证工具检查XML的有效性,排除语法或结构错误。

内容的提问来源于stack exchange,提问作者oliver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 08:00:00