Skip to main content
Skip table of contents

createZugferdPdf

Versionshinweise

16.1.20, 17.1.10

Code

GROOVY
IPdfResult createZugferdPdf(String targetPdfFileName, String sourcePdfFileName, String xmlZugferdFileName, String... fileNamesToAdd)

Beschreibung

Generierung einer ZUGFeRD konformen PDF-Datei.

Hinweis

Das ZUGFeRD-Rechnungsformat erlaubt es, Rechnungsdaten in strukturierter Weise in einer PDF Datei zu übermitteln und diese ohne weitere Schritte auszulesen und zu verarbeiten. Die Generierung einer PDF/A-3 ZUGFeRD PDF-Datei basiert auf einer Standard PDF-Datei und einer XML-Datei, die der ZUGFeRD-Spezifikation entspricht.
Im Standard ist die Generierung von ZUGFeRD 1.0 konformen PDF-Dokumenten enthalten. Ist das Modul ZUGFERD freigeschaltet, können auch ZUGFeRD 2.0 konforme Dokumente generiert werden.

Parameter

  • targetPdfFileName
    Name der zu generierenden ZUGFeRD-konformen PDF-Datei (mit vollständiger Pfadangabe).
  • sourcePdfFileName
    Name der PDF-Datei, aus der eine ZUGFeRD-konformen PDF-Datei generiert werden soll (mit vollständiger Pfadangabe).
  • xmlZugferdFileName
    Name der XML-Datei, die in die ZUGFeRD-konformen PDF-Datei eingebunden wird (mit vollständiger Pfadangabe).
  • fileNamesToAdd
    Optionaler Parameter zum Einbetten von einer oder mehreren Dateien (mit vollständiger Pfadangabe)
    Die PDF-Dateien können wie folgt übergeben werden: String[], List<String> oder als einzelne Argumente vom Typ String.
    Voraussetzung: Modul ZUGFERD ist freigeschaltet.


Rückgabe

Ergebnis der Generierung der ZUGFeRD-konformen PDF-Datei
Folgende Methoden stehen in dem Rückgabeobjekt IPdfResult zur Verfügung:

  • boolean isSuccessful()
    War die Generierung der ZUGFeRD-konformen PDF-Datei erfolgreich?

  • String getErrorCode()
    Liefert den Fehlercode, falls die Generierung der ZUGFeRD-konformen PDF-Datei nicht erfolgreich war. Mit Hilfe der Fehlercodes können individuelle Ausgaben im Skripting hinterlegt werden.
    Folgende Fehlercodes stehen als Konstanten in der Klasse PdfConstants zur Verfügung

    • PdfConstants.PDF_ERRORCODE_NOTSUPPORTED_FILETYPE
      Dieser Dateityp wird bei der Generierung der ZUGFeRD-konformen PDF-Datei nicht unterstützt.

    • PdfConstants.PDF_ERRORCODE_FILENOTFOUND
      Die im Paramater sourcePdfFileName angegebene PDF-Datei ist nicht vorhanden.

    • PdfConstants.PDF_ERRORCODE_NOTSUPPORTED_PDFFORMAT
      Das PDF Format der im Paramater sourcePdfFileName angegebene PDF-Datei wird nicht unterstützt.

    • PDF_ERRORCODE_NOTCONVERTED_PDFA

    • Die im Paramater sourcePdfFileName angegebene PDF-Datei konnte nicht in  das PDF-Format PDFA konvertiert werden .

    • PDF_ERRORCODE_ZUGFERD_PDFA3
      Die im Paramater sourcePdfFileName angegebene PDF-Datei konnte nicht in  das PDF-Format PDFA/3 konvertiert werden .

    • PDF_ERRORCODE_ZUGFERD_INVALIDXML
      Die im Paramater xmlZugferdFileName angegebene xml-Datei entspricht nicht dem ZUGFeRD-Standard.

    • PDF_ERRORCODE_ZUGFERD_GENERAL
      Ein allgemeiner Fehler ist bei der Generierung der ZUGFeRD-konformen PDF-Datei aufgetreten.

    • PdfConstants.PDF_ERRORCODE_GENERAL

    • Ein allgemeiner Fehler aufgetreten.

Beispiele

GROOVY
String sourcePdfFileName = "c:/Source/Invoice4711.pdf";
String sourceXmlFileName = "c:/Source/ZUGFeRD-invoice.xml";
String targetPdfFileName = "c:/Target/ZUGFeRD-invoice.pdf";
String fileName1 = "C:/source/Quote.docx";
String fileName2 = "C:/source/Flyer1.pdf";
String fileName3 = "C:/source/Calculation.xlsm";
String[] files = new String[3];
files[0] = fileName1;
files[1] = fileName2;
files[2] = fileName3;
IPdfResult pdfResult = PdfUtils.createZugferdPdf(targetPdfFileName, sourcePdfFileName, sourceXmlFileName, files);

// Alternate variant for use of method without embedded files
// IPdfResult pdfResult = PdfUtils.createZugferdPdf(targetPdfFileName, sourcePdfFileName, sourceXmlFileName);

if (!result.isSuccessful())
{
	if (ScriptUtils.equal(PdfConstants.PDF_ERRORCODE_NOTSUPPORTED_FILETYPE, result.getErrorCode()))
	{
		...Error handling...
	}
}
else
{
	...do something with "c:/Target/ZUGFeRD-invoice.pdf"...
}
	
// Alternate variant for use of method
// ZugferdConfigVO configVO = new ZugferdConfigVO(targetPdfFileName, sourcePdfFileName, sourceXmlFileName);
// configVO.setDeleteLogFiles(true);
// configVO.setPdfConformanceLevel("A");
// configVO.setPdfConformanceLevel("B");
// configVO.setZugferdConformanceLevel(ZugferdConformanceLevel.BASIC);
// configVO.setZugferdConformanceLevel(ZugferdConformanceLevel.COMFORT);
// configVO.setZugferdConformanceLevel(ZugferdConformanceLevel.EXTENDED);
// configVO.setProducer("Cursor Software AG");
// configVO.setCreator("Cursor Software AG");
// configVO.setEmbeddedFiles(files);
// PdfUtils.createZugferdPdf(configVO);
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.