Wie sie ZUGFeRD konforme PDF Rechnungen (Factur-X) mit unserem PDF Drucker erzeugen können, zeigen wir ihnen in diesem Kapitel unseres Handbuchs.

Die Kernanwendung ist unser PDF Drucker, denn als Grundlage für ZUGFeRD konforme PDF Dokumente bietet er die Erzeugung von PDF/A-3b Dateien an. Diese PDF Spezifikation ist die Basis dafür um an PDF Dokumente weitere Dateien, im Falle von ZUGFeRD sind es XML Dateien, anfügen zu können.

7-PDF Attach Extract and Remove (ZUGFeRD) Tool

Dabei läuft das Anfügen von sogenannten Attachments an PDF Dateien wie folgt ab: 7-PDF Printer druckt zuerst das dafür nötige PDF/A-3b Rechnungsdokument via Druckjob (vorzugsweise aus einem ERP System) im PDF Format 1.7, und unsere hier als PlugIn Anwendung genutzte Software PDFAttachExtractAndRemoveFiles.exe fügt den gewünschten Dateianhang (XML der eRechnung im DIN EN 16931 CII Format) schlussendlich an das zuvor gedruckte PDF/A-3b Dokument an.

Das "7-PDF Attach Extract and Remove PDF Tool" (PDFAttachExtractAndRemoveFiles.exe), wie wir unsere Software offiziell nennen, kann hier auf dieser Seite heruntergeladen werden. Wir nutzen das Tool in diesem Beispiel zum Anfügen des eRechnungs-XMLs an die vom Drucker erstellte PDF/A3-b Datei (PDF Rechnung). Das Tool kann aber auch verwendet werden, um gegebenenfalls im Nachgang weitere rechnungsrelevante Dateien wie AGBs, Auftragsbestätigungen an die erzeugte PDF eRechnung anzufügen. Es erleichtert die Organisation von anzufügenden Dateien an PDF Dokumenten beispielsweise via Drag & Drop doch sehr.

7-PDF Attach Extract and Remove PDF Tool -> PDFAttachExtractAndRemoveFiles.exe gestartet als Desktop Anwendung
7-PDF Attach Extract and Remove PDF Tool -> PDFAttachExtractAndRemoveFiles.exe gestartet als Desktop Anwendung

Dateien anfügen an PDF ZUGFeRD - Als Desktop oder Konsolenanwendung

Unser 7-PDF Attach Extract and Remove Tool, ist eine spezielle hybride Anwendung. Das heißt sie kann klassisch als reine Anwendung für den Endbenutzer über eine Benutzeroberfläche bedient werden, bietet aber auch einen Consolen und Hidden Mode zur versteckten vollautomatischen Programmausführung im DOS Modus an.

Der nachfolgende Screenshot zeigt die möglichen Parameter zur Steuerung des Programms als Konsolenanwendung:

PDFAttachExtractAndRemoveFiles.exe in der Windows 11 Eingabeaufforderung als Konsolenanwendung ausführen
PDFAttachExtractAndRemoveFiles.exe in der Windows 11 Eingabeaufforderung als Konsolenanwendung ausführen. Mit dem Parameter /? erhält man die Hilfe zum Programm

Voraussetzung für das erfolgreiche Anfügen von XML Dateien (eRechnungen) an PDF Rechnungen ist allerdings, das ihr PDF konform zum PDF Standard PDF/A-3b (Langzeitarchivierungsformat) und Version 1.7 ist. Wie bereits beschrieben, stellt das unser PDF Drucker sicher.

7-PDF Attach Extract and Remove PDF Tool als PlugIn für 7-PDF Printer verwenden

Um nun vollautomatisch mit unserem PDF Drucker 7-PDF Printer ZUGFeRD konforme PDF Rechnungen zu drucken, muss die Anwendung PDFAttachExtractAndRemoveFiles.exe zuerst installiert werden. Der nachfolgenden Screenshot zeigt die Setupausführung unseres Tools in den Standard-Installationspfad der Anwendung. Als PlugIn wird die Anwendung später beim Drucken der Rechnungsdaten von 7-PDF Printer "versteckt/hidden" ausgeführt, um das Rechnungs-XML konform anzufügen.

PDFAttachExtractAndRemoveFiles.exe ist nach der Installation als PlugIn Anwendung direkt von unserem PDF Drucker nutzbar.
PDFAttachExtractAndRemoveFiles.exe ist nach der Installation als PlugIn Anwendung direkt von unserem PDF Drucker nutzbar.

ZUGFeRD PDF automatisch mit 7-PDF Printer erstellen

Wenn PDFAttachExtractAndRemoveFiles.exe als PlugIn Anwendung durch Installation zur Verfügung steht, benötigen wir für eine vollautomatische Erstellung von ZUGFeRD konformen PDF Dateien mit 7-PDF Printer noch das dafür benötigte Macro ZUGFeRD.vbs für unseren Drucker.

Sie finden unten in der Downloadtabelle ein ZIP Archiv mit der Benamung PlugIn_ZUGFeRD_7PDF_Printer.zip das dieses Macro und weitere benötigte Dateien beinhaltet. Wie bei unserem PDF Drucker üblich gehört das Macro ZUGFeRD.vbs in den Macros Ordner. Kopieren sie also die VBS Datei in dieses Verzeichnis.

ZUGFeRD.vbs Macro muss in den Macros Ordner des 7-PDF Printers platziert werden
ZUGFeRD.vbs Macro muss in den Macros Ordner des 7-PDF Printers platziert werden. Das VB Script wird kostenlos von uns zur Verfügung gestellt.

Das Macro ruft nach dem Drucken des benötigten PDF/A-3b Dokuments automatisch PDFAttachExtractAndRemoveFiles.exe auf und hängt vollautomatisch die zur Rechnung passende ZUGFeRD konforme XML Rechnungsdatei an das gedruckte PDF.

ZUGFeRD.vbs Macro muss in den Macros Ordner des 7-PDF Printers platziert werden
Die wirklich wichtige Zeile hierfür ist die markierte Zeile (roter Pfeil) im VB Script Macro. Hier wird PDFAttachExtractAndRemoveFiles.exe vom 7-PDF Printer im Hidden Mode mit allen für das Anfügen der XML Datei nötigen Parameter aufgerufen. Der Pfad muss ggf. bei älteren Windows Versionen angepasst werden.

Simulierter Rechnungsdruck

Als Simulationsbeispiel des Rechnungsdrucks nutzen wir einfach mal die nachfolgende Beispielrechnung (unten herunterladbar). Für diesen Test bzw. dieses Beispiel erfolgt der Druck also aus MS Word. Wir wollen mit dem Word Rechnungsdruck einfach erst einmal prüfen, ob die Erzeugung von PDF ZUGFeRD soweit technisch funktioniert. Normalerweise erfolgt so ein Druck später aus einem ERP System bzw. einer Warenwirschaft an 7-PDF Printer.

Beispielrechnung mit rot markierter Rechnungsnummer
Beispielrechnung mit rot markierter Rechnungsnummer.
Hinweis: Die Beispielrechnung ist auch als Download unten verfügbar.

Die Rechnungsnummer ist zur reinen Veranschaulichung für sie rot im Rechnungsdokument markiert, denn dieser Teil der Druckdaten extrahiert das oben platzierte Macro ZUGFeRD.vbs, um die für die Druckdaten passende ZUGFeRD XML Datei, die vom ERP System zuvor unter C:\einvoices abgelegt wurde, an PDFAttachExtractAndRemoveFiles.exe weiterzugeben damit es das XML an die erzeugte PDF/A-3b Datei anhängt. Es gibt also in diesem Verzeichnis eine ZUGFeRD konforme XML Datei mit dem Namen 2021-09-1911.xml

Im oben bereits erwähnten ZIP Archiv mit der Benamung PlugIn_ZUGFeRD_7PDF_Printer.zip (Download über Downloadtabelle unten) finden sie auch ein gezipptes Verzeichnis einvoices das es ihnen ermöglichen soll unser hier gezeigtes Beispiel selbst einmal durchspielen zu können.


In diesem Verzeichnis hat das ERP zuvor beispielhaft die XML ZUGFeRD Daten je Rechnung abgelegt. Der Dateiname ist gleich der Rechnungsnummer aus den Druckdaten und wird vom Macro ZUGFeRD.vbs extrahiert und an unsere PDFAttachExtractAndRemoveFiles.exe weitergegeben.

Simulation starten

Wir halten fest: PDFAttachExtractAndRemoveFiles.exe ist in seinem Standardpfad installiert, ZUGFeRD.vbs im Macros-Verzeichnis von 7-PDF Printer abgelegt, und das Verzeichnis einvoices ist direkt unter C:\ entpackt. Dann drucken wir nun zur Simulation aus Word unsere Beispielrechnung auf dem 7-PDF Printer aus.

Beispielrechnung mit rot markierter Rechnungsnummer
Beispielrechnung mit rot markierter Rechnungsnummer.

Der Druckdialog unseres PDF Druckers wird angezeigt, wir drücken nach Auswahl des Speicherorts für die zu erzeugende PDF/A-3b Datei auf die Schaltfläche "Speichern".

Druckdialog des 7-PDF Printers erscheint
Druckdialog des 7-PDF Printers erscheint

Das Ergebnis

Das Ergebnis ist ein PDF/A-3b Rechnungsdokument mit angehängter ZUGFeRD konformen XML Datei, wie uns der Acrobat Reader von Adobe eindrücklich zeigt.

ZUGFeRD konforme PDF Rechnung im Acrobat Reader
ZUGFeRD konforme PDF Rechnung im Acrobat Reader

Nur eine spezielle PDF Druckerinstanz soll ZUGFeRD PDF Dokumente drucken

7-PDF Printer unterstützt über den Setup Parameter /PRINTERNAME="[GEWÜNSCHTER PDF DRUCKERNAME]" die Installation mehrerer PDF Druckerinstanzen. Für jede Druckerinstanz können dann unterschiedliche PDF Einstellungen vorgenommen werden. Macros wie ZUGFeRD.vbs werden allerdings global in den Macros Ordner abgelegt, und gelten eigentlich für jede installierte Druckerinstanz. Im Klartext, die Programmierung wirkt sich also auf jede Druckerinstanz die auf 7-PDF Printer basiert aus.

Man kann aber im VB Script Code die Variable PrinterName (Zeile 15) abfragen, und damit den ZUGFeRD.vbs Code nur für eine spezifische Druckerinstanz vorsehen. In dem Codeschnipsel unten ist es in diesem Falle die Standard PDF Druckerinstanz mit dem bekannten Namen "7-PDF Printer". Hier wurde der gesamte Code einfach in eine VBScript IF Bedingung geklammert. Das Coding für ZUGFeRD Dokumente wird also nur ausgeführt, wenn über den 7-PDF Printer ein Druck durchgeführt wurde.

ZUGFeRD konforme PDF Rechnung im Acrobat Reader
ZUGFeRD Dokumente werden nur über die Druckerinstanz 7-PDF Printer erzeugt.

Auf Druckertreiber achten

7-PDF Printer kann neben einer klassischen Installation als Desktopanwendung bzw. einer lokalen PDF Druckerinstallation (Standard) auch als zentraler PDF Netzwerkdrucker installiert werden. Der Installationsparameter ist hierfür /SHARE.

Nach einer Installation als PDF Netzwerkdrucker, könnte es für die Erstellung von ZUGFeRD PDF Dokumenten nötig sein, den nach der Installation ausgewählten Druckertreiber auf 7-PDF Printer, wie im nachfolgenden Screenshot zu sehen ist, umzustellen. Zwecks höherer Kompatibilität wird ggf. ein Postscript Treiber des Betriebssystems genutzt. Im Falle von ZUGFeRD benötigen wir aber direkten Zugriff auf Druckdaten, und dies ist nur möglich wenn die PDF Netzwerkdrucker Instanz (im Screenshot "PDF-EXP-Prt") unter dem Druckertreiber "7-PDF Printer" betrieben wird. Man sollte also hier einen Blick drauf haben, das die Druckerinstanz auch den richtigen Druckertreiber verwendet.

Für ZUGFeRD muss der richtige Treiber verwendet werden!
Für ZUGFeRD muss der richtige Treiber 7-PDF Printer verwendet werden!

Hinweis: Sie müssen ab Windows 10 vor einer Treiberumstellung die Druckerfreigabe temporär für die Zeit der Treiberumstellung deaktivieren, sonst erhalten sie eine Betriebssystem Fehlermeldung.

Fazit

Das hier aufgeführte Simulationsbeispiel extrahiert Druckinformationen über die mitgelieferte Macroprogrammierung ZUGFeRD.vbs. Die hinterlegte Programmierung erwartet ein Layout das der Rechnungsbeispieldatei aus Word entspricht.

Für ihre Anforderungen müsste also das Macro ZUGFeRD.vbs ggf. angepasst werden. Mit ein wenig VB Script oder Programmierkenntnissen unter Visual Basic, lässt sich die hier mitgelieferte Programmierung recht flott selbst anpassen. Sollten sie keine Programmiererfahrungen haben, so bieten wir hier auch entsprechendes KnowHow an. Kontaktieren sie uns einfach am Besten per Supportformular, wir helfen ihnen gern und versuchen ihre Anforderungen zu realisieren.

Unterstützte ZUGFeRD Versionen und Factur-X 1.0

PDFAttachExtractAndRemoveFiles.exe unterstützt das Anhängen bereits ZUGFeRD konformer XML Dokumente der EU-Norm von EN 16931. Darunter fallen neben der ZUGFeRD Versionen 1.0, 2.0, 2.1 auch Factur-X 1.0 (Frankreich). Die Abkürzung ZUGFeRD steht für die Spezifikation "Zentraler User Guide des Forums elektronische Rechnung Deutschland" und ist ein Format für den Austausch elektronischer Rechnungsdokumente.

Andere Dateitypen an PDF/A-3b anhängen

Im Desktopmodus unseres 7-PDF Attach Extract and Remove Tools Version 1.0.0.174 (PDFAttachExtractAndRemoveFiles.exe) kann man PDF/A-3b konformen Dokumenten nicht nur XML Dokumente anhängen, sondern auch alle anderen validen Dateitypen wie beispielsweise *.pdf, *.docx, *.xlsx, *.pptx, *.rtf usw. Das Tool unterstützt das Anfügen von diesen Dateien im normalen GUI Modus aber auch im CLI Modus, also via Console und kann zur Automatisierung ihrer eRechnungsprozesse sehr nützlich sein!

Top