Zum Hauptinhalt springen

Druck und PDF-Generierung

Zweck

Druck- und PDF-Workflows in SpeamCore folgen drei Mustern, je nach Anwendungsfall:

PatternWannBeispiel
Browser-PrintEinfache Reports oder Listen direkt aus dem FE/time-overview/report, /open-items Print-Button
BE-Print-ServiceKomplexe Belege mit fester Layout-VorlageVerkaufsbelege als Rechnungs-PDF, Bestellbelege
QR-Code-AufkleberAnlagen, Lager-Spots, OperatingEquipmentQR-IDs, Lager-Spots, OperatingEquipments

Pattern 1 — Browser-Print

Im FE wird window.print() mit einem speziell formatierten Print-Layout (oft eigenes CSS) ausgeloest. Die Komponente verwendet typischerweise:

  • PrintOptionsModal (z. B. in /time-overview) zur Auswahl von Datumsbereich, Mitarbeiter-Filter etc.
  • OpenItemPrintButton (/open-items) als einfacher Auslöser.

Vorteile:

  • keine BE-Abhaengigkeit, schnell.
  • Anwender hat volle Kontrolle über Drucker/PDF-Export über den Browser-Dialog.

Grenzen:

  • keine konsistente Pixel-genaue PDF-Erzeugung server-seitig.
  • nicht versendbar ohne Anwender-Interaktion.

Pattern 2 — BE-Print-Service

Für Belege mit gefordertem Layout (Briefkopf, Logo, Footer, Mehrsprachigkeit) generiert der Backend einen PDF-Buffer und liefert ihn als Download oder Mail-Anhang aus.

Typische Endpoints:

  • POST /api/sales-documents/:id/print → liefert PDF.
  • POST /api/purchase-documents/:id/print → analog.
  • Print-Templates werden über Anpassung (Public-Attribute) gesteuert.

Eigenschaften:

  • konsistente Ausgabe über alle Geraete.
  • Templates pro Mandant individualisierbar.
  • PDF kann automatisch in Document-Center gespeichert werden.

Pattern 3 — QR-Code-Aufkleber

Für physische Markierung (Anlagen, Lager-Spots, Betriebsmittel):

  • QrCodeComponent (FE) erzeugt das QR-Bild aus der ID via qrcode.react.
  • Aufkleber-Layout (Hintergrundfarbe, Logo, Bezeichner-Text) kommt aus Anpassung — QR-Code (Sub-Tab qr-code).
  • Print-Layout ist Browser-Print mit angepasstem CSS.

Routen mit QR-Code-Druck:

Berechtigungen

ActionSubjectWirkungKeycloak-Rolle
viewPrint (Custom-Capability)Print-Buttons im UI sichtbarAPP_SPEAMCORE_VIEW_PRINT (CUSTOM-CAPABILITY)`
doPrintBrowser-Print ausloesbarAPP_SPEAMCORE_DO_PRINT
view/dobeleg-spezifische SubjectsBE-Print-Service nutzbarAPP_SPEAMCORE_VIEW/DO_BELEG-SPEZIFISCHE SUBJECTS

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

Versionshinweise

  • 2026-04-30: Initiale Veroeffentlichung als Querschnitts-Grundlage.