Success Story: PDF-Generierung in Micro Service-Landschaften: Effektive Lösungen für Mehrsprachigkeit und Lizenzfragen
- christophsens
- 14. Juni 2024
- 2 Min. Lesezeit
Ein Kunde stand vor der Herausforderung, seine Micro Service-Systemlandschaft um die Generierung und Verteilung von PDF-Dokumenten zu erweitern. Dieser Artikel zeigt auf, wie durch die Verwendung von HTML-Templates und modernen Technologien wie Thymeleaf und Flying Saucer diese Aufgabe effizient bewältigt werden kann. Besonders beleuchtet werden dabei lizenzrechtliche Aspekte und technologische Entscheidungen.
Technologische Grundlagen und Entscheidungen
Für die Generierung von PDF-Dateien aus HTML nutzt das Projekt Flying Saucer mit der Option entweder iText 5 oder OpenPDF. Aufgrund der lizenzrechtlichen Vorteile wird die Verwendung von OpenPDF empfohlen, das unter der LGPL-Lizenz steht und daher auch in kommerziellen Umgebungen problemlos eingesetzt werden kann. Sowohl mit iText 5 als auch mit OpenPDF erstellte PDF-Dokumente sind in Größe und Aussehen identisch, wobei das Flying Saucer-Team die Unterstützung für iText 5 ab Mai 2024 eingestellt hat.
Nahtlose Integration in die Micro Service-Landschaft
Ein zentraler Wunsch des Kunden war es, PDF-Dokumente und Übersetzungen ohne aufwändige Deployments austauschen zu können. Dies wurde durch die Implementierung eines Microservices erreicht, der über REST-Schnittstellen mit der bestehenden AWS-Systemlandschaft des Kunden interagiert. HTML-Templates und Übersetzungen werden dabei in einer Datenbank verwaltet und dynamisch für die PDF-Generierung bereitgestellt.
Herausforderungen bei der Schriftartenwahl
Besondere Aufmerksamkeit erfordert die Auswahl und Einbettung der richtigen Schriftart in die PDF-Dokumente, insbesondere bei der Darstellung unterschiedlicher Alphabete wie kyrillischer Zeichen. Beliebte Schriftarten wie Arial sind lizenzpflichtig und können erhebliche Kosten verursachen. Hier bietet sich die Nutzung lizenzfreier Schriftarten wie „Noto“ an, die über 800 Sprachen unterstützt und unter der SIL Open Font License frei verteilt werden darf.
Prototyp und Technologie-Stack
Interessierte finden einen funktionsfähigen Prototypen auf GitHub unter https://github.com/christoph-sens/pdf-generator. Dieser Prototyp nutzt Technologien wie Java 21, Kotlin, Spring Boot / Data, PostgreSQL, Docker, Hibernate, DockerCompose, Test Containers, Rest Assured, JUnit und Maven. Er bietet eine synchronisierte PDF-Anforderung und kann leicht für eine asynchrone PDF-Verteilung angepasst werden.
Durch diese Lösungen wird gezeigt, wie Unternehmen ihre PDF-Generierung effizient und flexibel gestalten können, angepasst an die spezifischen Anforderungen von Micro Service-Architekturen und globalen Lizenzbestimmungen für Schriftarten.