PDFAttex – .NET / COM Komponente um ZUGFeRD-XML und andere Anhänge aus einer PDF zu extrahieren

PDF, PDF/A-3 sowie das ZUGFeRD Format ermöglichen es ein PDF Dokument als Container zu verwenden um beliebige Dateien in das PDF einzubetten. Der Empfänger benötigt eine Möglichkeit um die eingebetteten Dateien zu extrahieren. Das kann interaktiv z.b. über den Adobe Reader erfolgen. Will man jedoch diesen Vorgang automatisieren benötigt man eine entsprechende Software-Komponente die in eine Anwendung eingebunden werden kann um die Anhänge auszulesen und zu speichern.

Für das ZUGFeRD Format gibt es ein kostenloses Commandline Tool – ExtractZUGFeRD-XML sowie jetzt mit PDFAttex auch eine .NET / COM Komponente. Diese ist als Erweiterung jetzt im eDocPrintPro SDK  enthalten.

PDFAttex Funktionen:

  • .NET / COM Komponente
  • C# Beispiel/Test-Anwendung mit Source-Code
  • Auslesen wie viele Anhänge in der PDF enthalten sind
  • Auslesen und Speichern einzelner oder aller Anhänge (Name, Erweiterung) aus einer PDF, PDF/A-3 oder ZUGFeRD Datei
  • Auslesen mit welchem PDF/A Level die Datei erzeugt wurde – PDF/A-1b, 2b, 3b

PDFAttex als 32bit COM Komponente:

VisualBasic6 (VB6) benötigt z.B. eine 32bit Komponente. Standardmäßig kann VB nicht mit .NET Komponenten umgehen die für eine gemischte – 32/64bit Umgebung erstellt wurden. Deswegen stellen wir dafür eine eigene 32bit Variante der DLL zur Verfügung. Diese DLL muss um angesprochen werden zu können zuerst mit der 32bit RegAsm.exe von .NET 2.0 registriert werden. Dafür sollte das folgende  Kommando über eine CMD Datei als Administrator ausgeführt werden: “C:\Users\Admin\Desktop\VB Sample\RegAsm.exe” “C:\Users\Admin\Desktop\VB Sample\PDFAttex.dll” /codebase. Danach steht in VB die Komponente in der Liste der vorhandenen Referenzen zur Verfügung und kann verwendet werden.

PDFAttex ist Teil des eDocPrintPro SDK´s. und erfordert die .NET Runtime Version 2.0.

eDocPrintPro free / PDF/A-1b, 2b, 3b & ZUGFeRD Version 3.25.2 verfügbar

Neuerungen eDocPrintPro Version 3.25.2:

  • Die aktuelles GhostScript AGPL Version 9.21 wird unterstützt
  • Die Routinen für die Erzeugung von PDF/A-1b, 2b, 3b und ZUGFeRD Formaten wurde komplett neu implementiert.
  • Die ZUGFeRD Variante des Treibers kann neben der ZUGFeRD XML jetzt auch weitere zusätzliche Dateien mit in die ZUGFeRD PDF einbetten.
  • Neue Version des eDocPrintPro SDK 3.25 verfügbar um die Erweiterungen aus eigenen Anwendungen nutzen zu können.

ZUGFeRD - neben dem XML lassen sich zusätzliche Anhänge einfügen

  • Alle für den eDocPrintPro verfügbaren Plugins sind jetzt auch mit der PDF/A & ZUGFeRD Variante verwendbar.

Je nach Plugin kann es erforderlich sein die Aktion vor der PDF/A oder ZUGFeRD Verarbeitung auszuführen z.b. um einen Stempel aufzubringen oder ein Briefpapier zu hinterlegen und erst dann die PDF/A und ZUGFeRD Konvertierung durchzuführen da sonst die Konformität zerstört werden würde. Auf der anderen Seite gibt es Plugin Aktionen die erst nach der PDF/A oder ZUGFeRD Konvertierung erfolgen dürfen z.b. eine Signatur aufbringen oder die erzeugte PDF Datei per Email zu versenden. Um das zu Steuern gibt es in der INI Datei des Plugins die Möglichkeit festzulegen wann (PRE, POST, LAST) die Plugin Aktion ausgeführt werden soll.

Process=PRE – Der Plugin wird vor der PostScript nach PDF Konvertierung ausgeführt. Der Plugin kann dazu verwendet werden um z.b. Ordner vorzubereiten oder um Befehle in den Postscript Code einzufügen.

Process=POST – Der Plugin wird nach der Konvertierung von PS nach PDF aufgerufen und bevor eine eDocPrintPro Add-On Nachverarbeitung (SWF, PDF/A oder ZUGFeRD) ausgeführt wird. Erforderlich z.b. für den AddOverlay oder PDFExport plugin

Process=LAST – Der Plugin wird nach der eDocPrintPro Add-On Nachverarbeitung (SWF, PDF/A oder ZUGFeRD) aufgerufen. Erforderlich z.b. für den EMail sowie Signatur Plugin

Wird keine Add-On Nachverarbeitung (SWF, PDF/A oder ZUGFeRD) ausgeführt so haben POST und LAST die gleiche Bedeutung. Wird der “Process” Parameter nicht angegeben so wird als Standardwert Process=POST angenommen.

Die INI Dateien der installierten Plugins sind unter C:\Program Files\Common Files\MAYComputer\eDocPrintPro\Plugins zu finden.

Beispiel INI – PDFExport & EMail Plugin:

Beispiel INI - PDFExport Settings  Beispiel INI - EMail Plugin

Download – eDocPrintPro free Version

Download – eDocPrintPro PDF/A & ZUGFeRD

GhostScript 9.21 Setup

eDocPrintPro – PDF/A Version 3.24.7 – enthält ZUGFeRD Format

Bisher haben wird für PDF/A und ZUGFeRD zwei verschiedene Produkte angeboten. Mit der Version 3.24.7 des eDocPrintPro PDF/A  Druckertreibers wurden beide Produkte in eines zusammengefasst.

Der große Vorteil – es jetzt damit auch möglich alle Standard eDocPrintPro Plugins z.b. den EMail Plugin für das ZUGFeRD Format zu verwenden.

Jedes der verfügbaren Formate PDF/A-1, PDF/A-3 und ZUGFeRD kann einzeln lizenziert und aktiviert werden. Das Setup legt einen Drucker mit dem Namen  “eDocPrintPro” an. Über ein mit installiertes Tool können jederzeit beliebige weitere virtuelle Drucker mit unterschiedlichen Namen angelegt werden. Dabei sind für  jeden dieser virtuellen Drucker andere Standard-Einstellungen möglich.

eDocPrintPro PDFA version enthält jetzt auch das ZUGFeRD Format  eDocPrintPro PDFA - alle 3 Formatoptionen können unabhängig voneinender lizensiert und freigeschaltet werden

Download – eDocPrintPro PDF/A & ZUGFeRD

Download – eDocPrintPro PDF/A & ZUGFeRD 32 und 64bit (ca. 63 MB) >>>

GhostScript 9.18.1 Setup

Download – GhostScript 9.18.1 MSI Setup – 32bit (ca. 16MB) >>>
Download – GhostScript 9.18.1 MSI Setup – 64bit (ca.16MB) >>>

eDocPrintPro – Version 3.24.1 – PDF, PDF/A, ZUGFeRD, SDK

Neuerungen Version 3.24.1:

Mit der Version 3.24.1. wurden einige Erweiterungen und Verbesserungen vorgenommen die nicht direkt am Userinterface ersichtlich sind und alle Versionen des Druckertreibers betreffen.

ESFX – neues Datenformat für die Profile: Alle Einstellungen des Druckertreibers können als Profil gespeichert und bei Bedarf wieder geladen werden. Bisher wurde die Endung ESF verwendet. Die über das Userinterface erzeugten Profil-Daten sowie jene die über das SDK erzeugt werden konnten waren aus historischen Gründen nicht kompatibel. Deswegen haben wir ein neues einheitliches XML Datenformat mit der Erweiterung ESFX implementiert. Dieses ist jetzt zwischen Userinterface- sowie SDK-Funktion kompatibel.

Ebenso wurde die Profil Funktion am Userinterface und im SDK dahingehend erweitert dass jetzt alle Einstellungen der eDocPrintPro Add-Ons – PDF/A-1,2,3 ZUGFeRD, FLASH/SVG sowie die Konfiguration der Plugin Ketten in den Profilen gespeichert und wieder geladen werden.

SDK Erweiterungen: Speichern und Laden der Add-On Einstellungen als XML. Funktion um alle Einstellungen des Treibers als XML (ESFX) zu speichern und wieder zu laden. Geschwindigkeitsoptimierung bei der Kommunikation des SDK mit dem Druckertreiber. Möglichkeit bei PDF/A-3 die Option zur Abfrage der Anhänge per SDK zu aktivieren / deaktivieren. Funktion um die Versionsnummer des installierten eDocPrintPro Druckertreibers abzufragen.

Neues Datenformat ESFX für die Profile  PDFA-3 Einstellungen können jetzt über Profile gespeichert und wieder geladen werden #1  PDFA-3 Einstellungen können jetzt über Profile gespeichert und wieder geladen werden #2  edoc SDK mit PDFA3 - AttEnabled   eDocPrintPro SDK Neuerungen Version 3_24_0 #1  eDocPrintPro SDK Neuerungen Version 3_24_0 #2  eDocPrintPro SDK Neuerungen Version 3_24_1

Download – eDocPrintPro, PDF/A, ZUGFeRD

Download – eDocPrintPro 32 und 64bit (ca. 63 MB) >>>
Download – eDocPrintPro PDF/A 32 und 64bit (ca. 63 MB) >>>
Download – eDocPrintPro ZUGFeRD – PDF/A-3 Druckertreiber >>>

GhostScript 9.18.1 Setup

Download – GhostScript 9.18.1 MSI Setup – 32bit (ca. 16MB) >>>
Download – GhostScript 9.18.1 MSI Setup – 64bit (ca.16MB) >>>

eDocPrintPro SDK – um die PDF/A und ZUGFeRD Funktionen erweitert

Das eDocPrintPro SDK ermöglicht es alle Einstellungen und Konfigurations-Optionen des PDF Druckertreibers aus der eigenen Anwendung heraus abzufragen und zu setzen. Neben der Plugin Schnittstelle lassen sich die Funktionen des Treibers auch über “Add-On” Module erweitern.

Das PDF/A sowie das ZUGFeRD Format wurde in Form solcher Add-On´s implementiert.  Jedes Add-On hat eine Reihe von Eigenschaften die auch abgefragt und gesetzt werden können. Welche verschiedenen Eigenschaften (Properties) für ein bestimmtes Add-On zur Verfügung steht ist aus der SDK-Dokumentation ersichtlich.

Mit der aktuellen Version des eDocPrintPro SDK gibt es jetzt auch die Möglichkeit die Eigenschaften für den PDF/A sowie den ZUGFeRD Add-On auszulesen und zu setzen. Ebenso wurde ein Beispiel hinzugefügt das zeigt wie speziell die ZUGFeRD Parameter ausgelesen und gesetzt werden können.

eDocPrintPro SDK - PDFA Add-On properties  eDocPrintPro SDK - ZUGFeRD Add-On properties   eDocPrintPro SDK - Beispiel zeigt wie Add on Parameter ausgelesen und gesetzt werden können  eDocPrintPro SDK - Eigenes ZUGFeRD Beispiel um Parameter auszulesen und zu setzen

eDocPrintPro ZUGFeRD Version 3.21.2 verfügbar

Damit wurde die ZUGFeRD Version unseres PDF Druckertreibers auf die aktuelle eDocPrintPro Version 3.21.2 angepaßt. So wurde auch die Funktion um alle Einstellungen als Profil zu speichern (XML Datei mit der Erweiterung *.esf) erweitert so dass jetzt auch die ZUGFeRD Konfigurationseinstellungen gespeichert und wieder geladen werden können.

eDocPrintPro - ZUGFeRD Format Einstellungen

Download – eDocPrintPro ZUGFeRD – PDF/A-3 Druckertreiber >>>

Download – ZUGFeRD Beispielrechnungen inkl. XML >>>

eDocPrintPro ZUGFeRD Version 3.20.1 – für die finale Version “ZUGFeRD 1.0” verfügbar

Mit dem 25.6.2014 wurde die finale Spezifikation 1.0 des ZUGFeRD Datenmodells veröffentlicht. Diese werden jetzt mit der Version 3.20.1 unseres eDocPrintPro ZUGFeRD Druckertreibers erfüllt. Ebenso ist es jetzt auch bereits möglich solche elektronischen Rechnungen zu überprüfen. Wir verwenden dazu den CALLAS pdfaPilot ab der Version 5.1.211. Damit lassen sich nicht nur die Dokumente auf die verschiedenen PDF/A Levels hin überprüfen sondern es kann auch gegen die ZUGFeRD Spezifikation 1.0 validiert werden.

Auf Basis der Version 1.0 gibt es jetzt auch einen neuen Set von Beispielrechnungen und XML Dateien.  Ein ZUGFeRD Infopaket das alle relevanten Informationen umfasst kann heruntergeladen werden.

Der eDocPrintPro ZUGFeRD Druckertreiber erzeugt ein PDFA-Level3b und bettet eine XML Datei mit ein  Druckausgabe über das voreingestellte ZUGFeRD PDF-Format Eine Validierung des PDFA-level3b Dokuments mit eingebetteter XML Datei kann über den CALLAS pdfaPilot erfolgen  Validierung ob das Dokument dem PDFA-level 3b entrspricht  Die Switchboard Funktion von CALLAS pdfaPilot ermöglicht eine detaillierte ZUGFeRD Validierung  Validierung ob die Rechnung dem ZUGFeRD Standard entspricht  Protokoll über die erfolgreiche Validierung

Download – eDocPrintPro ZUGFeRD – PDF/A-3 Druckertreiber >>>

Download – ZUGFeRD Beispielrechnungen inkl. XML >>>

ExtractZUGFeRD-XML – Commandline Tool – XML aus einer ZUGFeRD PDF/A-3 Datei extrahieren

Mit dem eDocPrintPro ZUGFeRD Druckertreiber ist es einfach möglich eine XML Datei mit den Rechnungsinformationen in die über den Druckvorgang erzeugte PDF/A-3 einzubetten. Um die XML-Daten dann woanders weiterverarbeiten zu können muss diese XML Datei wieder aus dem PDF Container extrahiert werden. Um das einfach zu ermöglichen stellen wir ein kostenloses Commandline Tool zur Verfügung. Der Pfad der ZUGFeRD PDF Datei als Parameter übergeben, extrahiert die im PDF gefundene ZUGFeRD XML Datei und speichert sie unter dem gleichen Namen / Pfad wie die PDF Datei ab.

Download – ExtractZUGFeRD-XML – Commandline Tool >>>

ZUGFeRD – eDocPrintPro PDF/A-3 Druckertreiber für elektronische Rechnungen verfügbar

Das ZUGFeRD Datenformat ist ein auf dem PDF/A Level 3 aufbauendes Format für elektronische Rechnungen in Deutschland. Dabei wird das PDF Dokument für die Archivierung, Ausdruck  und visuelle Darstellung verwendet und die Daten zur Rechnung zusätzlich als XML eingebettet. Im XML sind branchenneutral Informationen und Metadaten zur Rechnung enthalten.

Für eine ZUGFeRD Rechnung muss also eine PDF/A-3 erzeugt sowie eine XML Datei vorhanden sein. Die XML wird üblicherweise aus dem ERP erzeugt. Der ZUGFeRD eDoc Drucktreiber ermöglicht es nun über einen einfachen Druckvorgang aus jeder beliebigen Anwendung heraus solche Rechnungsbelege zu erzeugen.

Mögliche Abläufe: das XML ist in allen Fällen vorhanden, der Druckvorgang erfolgt über den ZUGFeRD eDoc Treiber:

  •  interaktive Auswahl der XML Datei über den Dateidialog
  • “stille” Verarbeitung der XML mit voreingestelltem Pfad und Dateinamen.
  • XML kann  nach der Einbettung auch automatisch gelöscht werden um einen definierten Zustand herzustellen.
  • Ansteuerung des Druckvorgangs über das eDoc SDK, der Zielpfad und Namen der PDF wird über das SDK eingestellt, das Dokument gedruckt, das XML wird automatisch eingebettet und anschließend wird ein Event über die Beendigung des Vorgangs an die Anwendung zurückgegeben.

ZUGFeRD – customized – speziell für Software-Hersteller interessant:

Der ZUGFeRD eDocPrintPro PDF/A-3 Druckertreiber ist speziell auch für Hersteller von Softwarelösungen interessant da damit die Erstellung ZUGFeRD konformer elektronischer Rechnungen recht einfach und schnell implementiert werden kann. Die Software muss nur die ZUGFeRD konforme XML Datei erzeugen, den Rest erledigt der ZUGFeRD eDoc Druckertreiber. Softwareanbieter können die Lösung unter Ihrem Namen einbauen und ohne weitere Lizenzkosten (royalty-free) verwenden.

Funktionsumfang ZUGFeRD – customized:

  • ZUGFeRD – eDocPrintPro PDF/A-3 Druckertreiber + Setup mit eigenem Namen / Logo / Links für die lizenzfreie (royalty-free) Verwendung zusammen mit der eigenen Softwarelösung
  • 32 und 64bit Version – für MS-Windows XP / 7 / 8 / MS-Windows Server 2008 / CITRIX und MS-Terminalserver
  • eDocPrintPro SDK – um den Druckvorgang automatisieren zu können und in die eigene Anwendung zu integrieren.
  • ZUGFeRD – XML Extraktor – um für Eingangsrechnungen die XML Datei aus dem PDF extrahieren zu können (C# .NET bzw. Commandline Tool)

eDocPrintPro - ZUGFeRD - PDFA-Level 3 Format voreingestellt  ZUGFeRD XML - kann silent eingebettet und danach gelöscht werden  ZUGFeRD Rechnugsdatei mit eingebetteter XMLZUGFeRD PDF Druckertreiber

Download – eDocPrintPro ZUGFeRD – PDF/A-3 Druckertreiber >>>
Download – ZUGFeRD – Beispielrechnung >>>
Download – ZUGFeRD – Beispiel XML >>>

ZUGFeRD – Informationspackage >>>

 

Das ZUGFeRD-Format für elektronische Rechnungen in Deutschland

ZUGFeRD-Logo-5cm-4c

ZUGFeRD ist die Abkürzung für »Zentraler User Guide des Forum elektronische Rechnung Deutschland«. Das ZUGFeRD-Format wurde in Deutschland geschaffen um elektronischer Rechnungen als PDF einschließlich strukturierter Daten als eingebettetes XML zwischen Unternehmen und Institutionen austauschen zu können. Im Gegensatz zu EDI ist ZUGFeRD nicht nur auf große, sondern auch auf kleine und mittlere Unternehmen sowie Freiberufler ausgerichtet. Der Standard ist allgemein und nicht branchenspezifisch gehalten und erfordert keine vorherige Absprache zwischen Sender und Empfänger.

Als Ziel soll das ZUGFeRD-Rechnungsformat sowohl als DIN sowie später als europäische Norm festgelegt werden. Auf der Web-Seite der ZUGFeRD Vereinigung ist ein Informationspackage mit den aktuellen Spezifikation sowie mit Beispielen zum Download verfügbar.

Das ZUGFeRD Rechnungsformat

besteht aus der visuellen, lesbaren Darstellung der Rechnung (PDF) sowie der strukturierten maschinenlesbaren XML-Darstellung. Die visuelle Darstellung wird als Dokumente nach dem PDF/A-ISO-Standard Level 3 codiert. Die XML-Darstellung ist kein vollständig neues Format, sondern basiert auf internationalen Standards. Um beide Rechnungsdarstellungen miteinander zu verknüpfen, nutzt ZUGFeRD ein wichtiges Feature von PDF/A-3 (ISO 19005-3), das es erlaubt,  Anhänge beliebiger Typen in ein PDF/A-Dokument einzubetten. Die XML-Rechnungsdaten werden als Anhang gemäß PDF/A-3 in das PDF-Dokument eingebettet. ZUGFeRD-Rechnungen enthalten also zwei separate Darstellungen der Rechnung, wobei PDF/A-3 als eine der Darstellungen sowie als Container für die andere XML Darstellung dient.

Der XML-Teil von ZUGFeRD-Rechnungen

ZUGFeRD führt für Rechnungen kein gänzlich neues XML-Format ein, sondern es basiert auf einem bestehenden Standard »Core Cross Industry Invoice« (CII), der von UN/CEFACT entwickelt wurde. CII bietet ein großes Datenmodell mit mehr als 2000 Elementen. Das Datenmodell bildet Unternehmensprozesse und -Beziehungen ab. Üblicherweise wird das CII-Datenmodell auf bestimmte Anwendungsfälle beschränkt, da meist nicht alle Elemente benötigt werden.  ZUGFeRD unterstützt drei aus unterschiedlichen CII-Untergruppe bestehende Profile. Diese sind nicht branchenspezifisch ausgerichtet:

  • Das »Basic«-Profil stellt strukturierte Daten für einfache Rechnungen dar. Zusätzliche Informationen können als Freitext eingebunden werden.
  • Das »Comfort«-Profil enthält zusätzliche  Informationen für die automatisierte Rechnungsverarbeitung.
  • Das »Extended«-Profil fügt weitere strukturierte Daten für den branchenübergreifenden Rechnungsaustausch hinzu.

Als Mindestanforderung müssen ZUGFeRD-Rechnungen das »Basic«-Profil unterstützen; weitere CII-Elemente können hinzugefügt werden, sofern diese nicht das »Extended«-Profil beeinträchtigen. Da zusätzliche Elemente außerhalb des Anwendungsbereichs von ZUGFeRD liegen, ist in diesem Fall eine vorherigen Absprache zwischen Beteiligten erforderlich.

Validierung von ZUGFeRD-Rechnungen

Es gibt momentan keine speziellen Tools um ZUGFeRD-Rechnungen in alle seinen Aspekten zu validieren. Es können  momentan nur die einzelnen Teile aus denen eine solche Rechnung besteht für sich überprüft werden.

  • Die Konformität zum Standard PDF/A-3 kann mit einem der verfügbaren PDF/A-3-Validierer (z.b. CALLAS pdfaPilot) überprüft werden. Dabei wird auch das erforderliche XMP Extension Schema überprüft.
  • Korrekte Einbettung der XML-Datei: Kann die XML-Version der Rechnung extrahieren werden, so bedeutet das, dass der ZUGFeRD-Eintrag in den XMP-Metadaten vorhanden ist und auf eine gleichnamige eingebettete XML-Datei zeigt, die erfolgreich extrahiert werden kann.
  • Die extrahierte XML-Rechnung kann mit einem XML-Schemavalidierer auf deren formale Gültigkeit überprüft werden. Die dazu benötigten XSD-Schemadateien sind Bestandteil des ZUGFeRD-Infopakets.

ZUGFeRD-Rechnungen erstellen:

Um ZUGFeRD-Rechnungen möglichst einfach ohne viel Aufwand aus jeder beliebigen Anwendung heraus erzeugen zu können haben wir einen eigenen eDocPrintPro ZUGFeRD PDF Druckertreiber entwickelt.

Dabei wird direkt über den Druckvorgang eine PDF/A-3 Datei erzeugt und eine XML wird entsprechend der ZUGFeRD Vorgaben eingebettet. – Die ERP Anwendung muss nur die XML Datei  in einem konfigurierbaren Folder/Dateinamen ablegen – der Rest wird vom Druckertreiber automatisch erledigt. Zur Extraktion der eingebetteten XML Datei sind ebenfalls entsprechende Tools – .NET / C# bzw. Commandline oder PDF-Viewer Komponenten verfügbar.