Commandline

Mustang können Sie auch auf der Kommandozeile nutzen:

XML extrahieren

➜ target git:(master) ✗ java -jar mustang-1.7.8.jar -e

Source PDF (default: invoice.pdf):
ZUGFeRD XML (default: ZUGFeRD-invoice.xml):
Written to ZUGFeRD-invoice.xml
        

ZUGFeRD 1 auf 2 migrieren

java -jar mustang-1.7.8.jar -u
ZUGFeRD 1.0 XML
        source (default: ZUGFeRD-invoice.xml):
        ZUGFeRD 2.0 XML target (default: factur-x.xml):
    Written to factur-x.xml

Die Migration von ZF1 zu Version 2 benutzt intern eine selbstgeschriebene (lies: unvollständige) XSLT-Transformation. Korrekturen und Ergänzungen sind hochwillkommen.

PDF und XML kombinieren

In diesem Fall muss die PDF-Quelldatei eine PDF/A-1 wie unser “blanko” sein

java -jar mustang-1.7.8.jar -c
Source PDF (default: invoice.pdf):
ZUGFeRD XML (default: ZUGFeRD-invoice.xml):
Ouput PDF (default: invoice.ZUGFeRD.pdf):
ZUGFeRD version (1 or 2) (default: 1):
ZUGFeRD profile b)asic, c)omfort or e)xtended (default: e):
Written to invoice.ZUGFeRD.pdf

PDF/A-1 nach PDF/A-3 konvertieren

java -jar mustang-1.7.8.jar -a

Migriert eine PDF/A-1 in eine PDF/A-3-Datei ohne ZUGFeRD-Daten hinzuzufügen. Derselbe Dateiinhalt wird schlicht als die neue Version ausgewiesen (was funktionieren muss weil das Format rückwärts-kompatibel ist). Zusätzliche Features wie die in PDF/A-2 eingeführte JPG2000-Kompression von Bildern werden nicht genutzt werden.

Metriken

Der Ursprungszweck des Kommandozeilentools war, herauszufinden, wie viele PDF-Dateien in bestimmten Pfaden bereits ZUGFeRD-Rechnungen sind.
Nutzen Sie

java -jar mustang-1.7.8.jar -d <Verzeichnisname>

bspw.

java -jar mustang-1.7.8.jar -d /tmp/XMLExamples
.................................................................................................................................................
===================================================================
Files: 145 Dirs: 15 PDF: 18 ZUGFeRD: 14

Jeder Punkt ist eine überprüfte Datei.
Verzeichnisse werden rekursiv abgehandelt, in diesem Beispiel wurden 18 PDF-Dateien in 15 Verzeichnissen gefunden. 14 der 18 Dateien wurden als ZUGFeRD 1 oder 2 identifiziert. Üblicherweise werden nur Dateien die auf .pdf oder .PDF enden überprüft. Ein zusätzliches -i überprüft alle Dateien.

java -jar mustang-1.7.8.jar -l

Mit -l kann eine Liste der zu überprüfenden Dateien angegeben werden. Eine leere Zeile startet die Überprüfung.
Beispiel:

java -jar mustang-1.7.8.jar -l
./MustangGnuaccountingBeispielRE-20170509_505PDFA3.pdf
./MustangGnuaccountingBeispielRE-20171118_506blanko.pdf
./MustangGnuaccountingBeispielRE-20170509_505PDF14.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_COMFORT_Sachversicherung_berechneter_Steuersatz.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_COMFORT_Einfach.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_COMFORT_Rechnungskorrektur.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_EXTENDED_Warenrechnung.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_COMFORT_Kraftfahrversicherung_Bruttopreise.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_COMFORT_SEPA_Prenotification.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_EXTENDED_Kostenrechnung.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_EXTENDED_Rechnungskorrektur.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_BASIC_Rechnungskorrektur.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_BASIC_Einfach.pdf
./ZUGFerdExamples/xslt/factur-x.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_COMFORT_Haftpflichtversicherung_Versicherungssteuer.pdf
./ZUGFerdExamples/ZUGFeRD_1p0_COMFORT_Rabatte.pdf
./MustangGnuaccountingBeispielRE-20170509_505.pdf
./MustangGnuaccountingBeispielRE-20170509_505blanko.pdf
./zf2test.pdf
...................
===================================================================
Files: 19 Dirs: 0 PDF: 19 ZUGFeRD: 15

Detaillierte Parameter

Falls Sie Mustang nicht-interaktiv, beispielsweise in einem Skript verwenden möchten, können Sie je nach Operation auf folgende Parameter zugreifen:

–source <filename>
Eingabe-PDF-Datei
–source-xml <filename>
Eingabe XML-Datei
–out <filename>
Ausgabe-Datei (meist PDF)
–format <fx|zf>
Factur-x oder ZUGFeRD-Ausgabe
–version <1|2>
ZUGFeRD-Version
–profile <…>
ZUGFeRD-Profile

  • Für ZUGFeRD v1: <b>ASIC, <c>OMFORT oder <e>XTENDED
  • Für ZUGFeRD v2: <m>INIMUM, BASIC <w>L, <b>ASIC, <c>IUS, <e>N16931, E<x>TENDED