Die API-Version steckt in der Basis-URL (PDF_SERVICE_URL, Standard http://localhost:8084/api/v1); der Client ruft relativ dazu /invoices/sign auf. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PDF Tool — ZUGFeRD E-Rechnungs-Konverter
Spring Boot + Vaadin Flow Anwendung, die aus gespeicherten Rechnungstemplates rechtskonforme ZUGFeRD-E-Rechnungen erzeugt (PDF/A-3 mit eingebettetem EN16931-XML, Profil EN 16931 / Factur-X), das Ergebnis mit dem Mustang-Validator prüft und als ZIP-Datei bereitstellt.
Verwendet wird Mustangproject (Apache-2.0), die Open-Source-Referenzimplementierung von ZUGFeRD, inklusive des Mustang-Validators (XSD + EN16931-Schematron für das XML, veraPDF für die PDF/A-3-Konformität).
Hinweis zur Rechtskonformität: ZUGFeRD "signiert" nicht kryptografisch. Rechtskonform im Sinne der deutschen B2B-E-Rechnungspflicht (§ 14 UStG, seit 01.01.2025) ist eine Rechnung im strukturierten EN16931-Format — genau das erzeugt dieses Tool. Eine qualifizierte elektronische Signatur ist seit 2011 nicht mehr erforderlich.
Voraussetzungen
- Java 21+
- Maven 3.9+
Starten
mvn spring-boot:run
Die Weboberfläche ist dann unter http://localhost:8083 erreichbar: Rechnungstemplate auswählen, Rechnungsdaten ausfüllen, "E-Rechnung erzeugen" klicken — das ZIP wird automatisch heruntergeladen.
Produktions-Build:
mvn clean package -Pproduction
java -jar target/pdf-tool-1.0.0-SNAPSHOT.jar
PDF Service
Die ZUGFeRD-Umwandlung (PDF/A-3 + EN16931-XML, Mustangproject) übernimmt das
eigenständige Projekt PDF Service (../PDF Service, Port 8084). Dieses Tool
rendert die Rechnung aus dem Template und ruft dann dessen REST-API
(POST /api/v1/invoices/sign) auf — der Service muss dafür laufen. Die Basis-URL
der API ist über PDF_SERVICE_URL konfigurierbar (Standard
http://localhost:8084/api/v1).
Architektur
- TemplatePdfService — rendert die Canvas-Templates (JSON aus MongoDB) über iText html2pdf zu einem PDF
- PdfServiceClient — ruft den PDF Service auf, der daraus die ZUGFeRD-E-Rechnung als ZIP erzeugt
- MainView — Vaadin-Weboberfläche
- InvoiceMetadata — DTO für die Rechnungsdaten
Tests
mvn test
Die Tests decken das Template-Rendering (TemplatePdfServiceTest, TemplateVariablesTest) und die USt-IdNr.-Validierung ab; die ZUGFeRD-Umwandlung wird im Projekt PDF Service getestet.