Mustang, a ZUGFeRD/Factur-X solution
Mustangproject is a open source library and command line tool for ZUGFeRD/FacturX, a PDF-based format for electronic invoices.
Mustangproject 1.6.0 was released on 2019-02-04.
- Convert PDF/A1 to PDF/A3
- Read and write ZUGFeRD 1 and ZUGFeRD 2 (public preview)
- Embeddable java library based on PDFbox
- Permissive license (APL2, free for use in commercial and noncommercial applications)
- We try to be particularly
- The Mustangproject library
- supports Maven
- can be embedded in your Java software
- Command line tool
- Runs on Linux, Mac OS and Windows
- Add ZUGFeRD XML to PDF
- Extract ZUGFeRD XML from PDF
- Migrate ZUGFeRD 1 to 2 (public preview)
- Convert PDF/A-1 to PDF/A-3
- Find out how many PDFs are ZUGFeRD
Interoperability is very important to us. Our sample invoice not only passes the GEFEG ZUGFeRD validator and 3-Heights™ PDF Validator Online Tool . We fixed a small, unspectacular and harmless violation of the PDF/A-3 standard which is e.g. still present in the official ZUGFeRD sample files.
Mustangproject has a relative high abstraction level, and you e.g. don't have to manually specify the invoice type to „380“ like in this sample from Konik sample
invoice.setHeader(new Header() .setInvoiceNumber("20131122-42") .setCode(_380);
Our business process abstraction which allows you to upgrade the library and switch between the ZUGFeRD versions with a single command.
Reading of ZUGFeRD data has been implemented using Xpath (a XML query language). This means that Mustangproject can parse ZUGFeRD files from before version 1.0 to including version 2 (public preview) using the same code base.
Open-Source licenses can be restrictive or permissive. While e.g. Konik is based on the „viral“ Gnu Public License, Mustangproject is even more free, based on the permissive Apache Public License, which allows you to even sell commercial software including Mustangproject without paying us a single cent in license fees.
This is a matrix comparing some open source ZUGFeRD libraries:
|Mustang||Konik||Factur-X Python library|
|Basis||Java PDFBox||Java (and .net) itext, PDFBox||Python|
|Source format||PDF-A1, PDF-A3||PDF, PDF-A1, PDF-A3||PDF-A1|
|Licence||APL (permissive)||GPL (restrictive) and commercial||APL (permissive)|
|PDF validation errors||0||1||Not possible|