Anbindung an elektronische Rechnungsformate ZUGFeRD/XRechnung

Click here for the English article.

Einleitung

Durch die Anbindung von List & Label können Rechnungsdaten entsprechend des ZUGFeRD-Standards erzeugt und verarbeitet werden. Dabei können die von List & Label erzeugten PDF-Dateien zusammen mit den von der Anwendung bereitgestellten XML-Daten ins ZUGFeRD-konforme PDF/A-3 Format erstellt werden. Weitere allgemeine Details finden sich im Artikel
ZUGFeRD, Factur-X und XRechnung – Elektronische Rechnungsformate in List & Label.

Ab List & Label Version 31.000 wird bis zur ZUGFeRD-Version 2.3 unterstützt, ab Version 31.001 auch die ZUGFeRD-Version 2.4.

Umsetzung

Die notwendige XML-Datei, die in das PDF eingebettet werden soll, muss von der Anwendung selbst erzeugt und bereitgestellt werden.

Tipp: Bei der Erstellung der ZUGFeRD-konformen XML-Datei kann der Artikel ZUGFeRD-XML-Dateien erstellen und in PDF einbetten unterstützen.

Dann reicht es aus, wenn in List & Label lediglich die Export-Option PDF.ZUGFeRDXmlPath auf den Pfad der erstellten XML-Datei gesetzt wird. Der Rest wird dann von List & Label selbst übernommen:

.NET/C#

...
// Define path to the ZUGFeRD XML file
string xmlPath = @"C:\temp\ZUGFeRD-invoice.xml";

// Define List & Label export configuration with ZUGFeRD XML file
ExportConfiguration exportConfig = 
	new ExportConfiguration("PDF", @"C:\temp\Output.pdf", "invoice.lst");           
exportConfig.ExportOptions.Add(LlExportOption.PdfZUGFeRDXmlPath, xmlPath);

// Start export
LL.Export(exportConfig);
...

Delphi (VCL/FireDAC)

...
// Define path to the ZUGFeRD XML file
xmlPath := 'C:\temp\ZUGFeRD-invoice.xml';

// Define List & Label export configuration with ZUGFeRD XML file
exportConfig := TLlExportConfiguration.Create
	(TLlExportTarget.Pdf, 'C:\temp\Output.pdf', 'invoice.lst');
exportConfig.ExportOptions.Add(TLlExportOption.PdfZUGFeRDXmlPath, xmlPath);

// Start export
ListLabel.Export(exportConfig);
...

Native API/C++

// Define path to the ZUGFeRD XML file
CString sXmlPath = _T("C:\\\temp\\ZUGFeRD-invoice.xml");

// Define List & Label export options with ZUGFeRD XML file and silent PDF export
::LlXSetParameter(m_hLlJob, LL_LLX_EXTENSIONTYPE_EXPORT, _T("PDF"), 
	_T("PDF.ZUGFeRDXmlPath"), sXmlPath);
::LlXSetParameter(m_hLlJob, LL_LLX_EXTENSIONTYPE_EXPORT, _T("PDF"), 
	_T("Export.File"), _T("output.pdf"));
::LlXSetParameter(m_hLlJob, LL_LLX_EXTENSIONTYPE_EXPORT, _T("PDF"), 
	_T("Export.Path"), _T("C:\\temp\\"));
::LlXSetParameter(m_hLlJob, LL_LLX_EXTENSIONTYPE_EXPORT, _T("PDF"), 
	_T("Export.Quiet"), _T("1"));

// Start export process with the defined options
if (::LlPrintStart(pJDR->_hJob, LL_PROJECT_LIST, 
	_T("invoice.lst"), LL_PRINT_EXPORT, 0) < 0)
	return; // Error

// Define explicit export format to PDF
::LlPrintSetOptionString(m_hLlJob, LL_PRNOPTSTR_EXPORT, _T("PDF"));

// Now process with the printing loop by calling ::LlPrint(), 
// ::LlPrintFields(), ::LlPrintEnd() etc.
// ...

Weiterführende Links