1a0a56a626
Replace the stale multi-module java/mss-failsafe skeleton (old user-management prototype) with the active single-module machine-safety inspection app that was living in its own standalone repo at the repo root. - Remove old java/mss-failsafe/ multi-module tree (mss, userdata, userManagement, mssfailsafe.datalayer, mssfailsafeWeblayer) incl. committed build artifacts - Add the active app (PrimeFaces 11 / JSF 2.3 / Hibernate 5.6 / iText / POI) flattened into java/mss-failsafe/ as the only mss-failsafe in git - Working tree captured = master tip 2a142b5 + in-progress uncommitted work (incl. .github/*.instructions.md AI-context files) - Archive the standalone repo's 33-commit history in GIT_HISTORY_ARCHIVE.md since its .git was not migrated This is the source of truth / base for the upcoming upgraded rewrite.
2.0 KiB
Executable File
2.0 KiB
Executable File
PDF Generation Instructions
Aktualisiert: 2025-10-20
Kontext
PDF-Erstellung erfolgt aktuell über Hilfsmethoden in AbstractController mittels iText7.
Kern-Hilfsmethoden
loadCompanyLogo()-> Lädt Logo aus LOGO_PATH.generateSorroundingTable(String header, float maxWidth)-> Einspaltige Rahmen-Tabelle mit Header.generateInnerTable(Text header, boolean last, String... values)-> 2-Spalten Tabelle mit alternierender Hintergrundfarbe.generateInnerTable(Text header, int nrColumns, boolean last, String... values)-> Generisch n-Spalten Tabelle.addInnerCells(Table table, String name, String value, boolean isGray)/ Overload -> Fügt Datenzeilen hinzu.addPagenumbers(Document document, String ticketNr, Image nextPagesCompanyLogo)-> Fügt Seitenzahlen & Logo hinzu.
Gestaltungsrichtlinien
- Fonts: Standard Helvetica / Bold (Konstanten
FONT_NORMAL,FONT_BOLD). - Schriftgrößen klein (8F Inhalte, 11F Header, 12F Hauptheader) für konsistente Layouts.
- Wechselnde Hintergrundfarbe (LIGHT_GRAY) zur besseren Lesbarkeit.
Erweiterung
Neue Tabellen-/Layout-Funktionen:
- Prüfen ob existierende Methoden erweiterbar statt neue Variante.
- Konsistenz in Font & Spaltenbreiten wahren.
- Kein Hardcode von absoluten Positionen außer bei Kopf-/Fußzeilen.
Ressourcen Pfade
- LOGO_PATH statisch:
/rundata/logo.png. Anpassungen zentral vornehmen.
Fehlerhandhabung
- Aktuell wenige try/catch Blöcke; bei Erweiterung: Fehler loggen (
LOGGER.error(e)) und Benutzer über Controller Messages informieren.
Edge Cases
- Leere Werte ->
-/-Platzhalter. - Null Tabelleninstanz in addInnerCells -> early return.
Verbesserungen
- Einführung eines PDFUtility Service zur Entkopplung vom Controller.
- Parameterobjekt für dynamische Tabellenkonfiguration (Spaltenbreiten, Farben, Größen).
Generator Leitplanken
- iText7 API weiterverwenden; keine neuen PDF Libraries.
- Wiederverwendbare Logik nicht direkt im konkreten Controller implementieren -> Utility / Service.