AddFacturXAssociatedFileFromString

文档属性

说明

把电子发票 XML 作为 PDF/A-3 关联文件写入,并为 Factur-X、ZUGFeRD 与 XRechnung profile 生成所需的 XMP 电子发票元数据

语法

Delphi

Function TPDFlib.AddFacturXAssociatedFileFromString(Const XMLBytes: AnsiString; Const ConformanceLevel, FileName, Description, Relationship, Version, CountryCode: WideString): Integer;

参数

XMLBytes发票 XML 的原始 UTF-8 字节
ConformanceLevelMINIMUM、BASIC WL、BASIC、EN16931、EXTENDED、XRECHNUNG、EXTENDED-CTC-FR 或 EXTENDED-B2B-FR
FileName通常为 factur-x.xml、xrechnung.xml、zugferd-invoice.xml 或 ZUGFeRD-invoice.xml,传入空字符串时使用 factur-x.xml
Description写入 file specification /Desc 的可读说明,可为空
Relationship/AFRelationship 名称,传入空字符串时使用 Alternative
Version电子发票配置版本,传入空字符串时使用 1.0
CountryCode可选区域配置,支持空字符串、DE 或 FR

返回值

0当前不是 PDF/A-3 模式、XML 或配置无效,或文档已经添加过电子发票 XML
Non-zero新建 file specification 的对象句柄

备注

该方法会在写入附件前校验文件名、conformance level、版本、国家 profile 与 /AFRelationship

COMFORT 仅与 ZUGFeRD-invoice.xml 和版本 1.0 一起接受;zugferd-invoice.xml 选择 ZUGFeRD 2.0 配置文件,xrechnung.xml 选择 XRECHNUNG 配置文件

该方法会写入 DocumentFileName、DocumentType、Version 与 ConformanceLevel XMP 字段,并检查 XML guideline ID 是否与所选 profile 匹配。普通可见发票页面内容仍由调用方在保存前创建

示例

// Add EN 16931 invoice XML to a PDF/A-3b document
var
  FileID: Integer;
begin
  PDF.SetPDFAMode(5);
  PDF.NewDocument;
  FileID := PDF.AddFacturXAssociatedFileFromString(
    InvoiceXML,
    'EN16931',
    'factur-x.xml',
    'Factur-X invoice XML',
    'Alternative',
    '1.0',
    '');
  if FileID = 0 then Exit;
  PDF.SaveToFile('factur-x.pdf');
end;

另请参阅

AddPDFA3AssociatedFileFromString, DetectFacturXInvoice, ValidateFacturXInvoice, ExtractFacturXXMLToString