InvoiceSigningController entfernt; die ZUGFeRD-Services bleiben für die Weboberfläche erhalten. Multipart-Konfiguration entfällt (kein Upload mehr). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.5 KiB
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
REST-API
Die REST-API (/api/invoices/sign und /api/invoices/validate) ist in das
eigenständige Projekt PDF Service ausgelagert
(../PDF Service, Port 8084). Dieses Tool enthält nur noch die Weboberfläche;
Rechnungen entstehen hier ausschließlich aus gespeicherten Templates.
Architektur
- ZugferdService — Kernlogik: PDF → PDF/A-3 + EN16931-XML (Mustangproject), Validierung, Verpackung als ZIP. Nicht-PDF/A-Eingaben (der Normalfall) werden tolerant konvertiert.
- ZugferdValidationService — Mustang-Validator (XSD + Schematron + veraPDF), liefert Status und XML-Prüfbericht
- MainView — Vaadin-Weboberfläche
- InvoiceMetadata — DTO für die Rechnungsdaten
Tests
mvn test
ZugferdServiceTest erzeugt ein
Test-PDF, konvertiert es und prüft, dass das ZIP ein PDF/A-3 mit eingebettetem
factur-x.xml (EN16931-Profil) enthält.