ZUGFeRD
В продуктах компании 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.
Обращаем внимание:
Имя XML-файла в разных версиях стандарта отличается регистром.
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(); ... |