В продуктах компании Stimulsoft добавлена поддержка формата электронных инвойсов ZUGFeRD 2.0.
 
Счета в формате ZUGFeRD передают как человекочитаемые счета-фактуры, так и его структурированное машиночитаемое XML-представление. Человекочитаемое представление кодируется в виде обычных страниц PDF-документа. XML-представление встроено в PDF-документ в качестве вложенного файла. PDF-файл должен соответствовать стандарту PDF/A-3, который разрешает использование вложенных файлов. Также XMP-метаданные pdf-файла должны содержать необходимую информацию согласно используемой версии стандарта ZUGFeRD.

 
На данный момент использовать формат ZUGFeRD можно только из кода. Для этого следует в настройках экспорта в PDF выбрать с помощью опции ZUGFeRDComplianceMode нужный вариант формата (V1 или V2), с помощью опции ZUGFeRDConformanceLevel выбрать нужный Conformance Level, а также загрузить заранее приготовленный XML-файл в свойство ZUGFeRDInvoiceData.

При этом файл будет автоматически добавлен в коллекцию EmbeddedFiles со стандартным FileName и Description. Если вам надо использовать другой Description, вы можете сами добавить файл в коллекцию EmbeddedFiles с нужным FileName и Description.

 

Обращаем внимание:

strel11 Имя XML-файла в разных версиях стандарта отличается регистром.

strel11 ConformanceLevel COMFORT в ZUGFeRD 2.0 заменен на EN 16931.

 
Ниже представлен пример кода для экспорта отчета с использованием формата ZUGFeRD:

 

C#

...

FileStream fileStream = new FileStream(@"d:\test.pdf", FileMode.Create);

byte[] buf = File.ReadAllBytes(@"d:\ZUGFeRD-invoice.xml");

 

//for ZUGFeRD 1.0

var pdfExportSettings = new StiPdfExportSettings()

{

ZUGFeRDComplianceMode = StiPdfZUGFeRDComplianceMode.V1,

ZUGFeRDInvoiceData = buf,

ZUGFeRDConformanceLevel = "COMFORT"        //BASIC, COMFORT, EXTENDED

};

 

//for ZUGFeRD 2.0

var pdfExportSettings = new StiPdfExportSettings()

{

ZUGFeRDComplianceMode = StiPdfZUGFeRDComplianceMode.V2,

ZUGFeRDInvoiceData = buf,

ZUGFeRDConformanceLevel = "EN 16931"        //BASIC, EN 16931, EXTENDED

};

 

report.ExportDocument(StiExportFormat.Pdf, fileStream, pdfExportSettings);

fileStream.Close();

...

 

 

Ниже представлен пример кода для экспорта отчета с использованием формата ZUGFeRD, если необходимо использовать альтернативный Description для XML-файла:

 

C#

...

FileStream fileStream = new FileStream(@"d:\test.pdf", FileMode.Create);

byte[] buf = File.ReadAllBytes(@"d:\ZUGFeRD-invoice.xml");

 

//for ZUGFeRD 1.0, Custom settings

var pdfExportSettings = new StiPdfExportSettings();

pdfExportSettings.ZUGFeRDComplianceMode = StiPdfZUGFeRDComplianceMode.V1;

pdfExportSettings.EmbeddedFiles.Add(new StiPdfEmbeddedFileData("ZUGFeRD-invoice.xml", "ZUGFeRD Invoice", buf));

pdfExportSettings.ZUGFeRDConformanceLevel = "COMFORT";

 

//for ZUGFeRD 2.0, Custom settings

var pdfExportSettings = new StiPdfExportSettings();

pdfExportSettings.ZUGFeRDComplianceMode = StiPdfZUGFeRDComplianceMode.V2;

pdfExportSettings.EmbeddedFiles.Add(new StiPdfEmbeddedFileData("zugferd-invoice.xml", "ZUGFeRD Invoice", buf));

pdfExportSettings.ZUGFeRDConformanceLevel = "EN 16931";

 

report.ExportDocument(StiExportFormat.Pdf, fileStream, pdfExportSettings);

fileStream.Close();

...