Files
PDFTool/README.md
T
SvenandClaude Fable 5 60aba03633 ZUGFeRD-Umwandlung an das PDF Service delegiert, lokale ZUGFeRD-Klassen entfernt
- PdfServiceClient ruft POST /api/invoices/sign auf (Basis-URL über PDF_SERVICE_URL,
  Standard http://localhost:8084); ZIP, Dateiname und Validierungsergebnis kommen
  aus der Response
- zugferd-Paket samt Test entfernt, Mustang-Abhängigkeiten aus der pom.xml gestrichen
- README und .env.example entsprechend angepasst

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 11:31:10 +02:00

2.6 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

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/invoices/sign) auf — der Service muss dafür laufen. Die Basis-URL ist über PDF_SERVICE_URL konfigurierbar (Standard http://localhost:8084).

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.