SvenandClaude Fable 5 c95cd99be7 REST-API in das eigenständige Projekt "PDF Service" ausgelagert
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>
2026-07-17 11:22:40 +02:00
2026-07-09 16:02:54 +02:00
2026-07-09 16:02:54 +02:00

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.

S
Description
No description provided
Readme
8.7 MiB
Languages
Java 67.5%
JavaScript 19.2%
TypeScript 11.3%
Shell 0.8%
CSS 0.7%
Other 0.5%