PDF-Viewer für Dateianlagen (kc:pdfViewer)¶
Das kc:pdfViewer-Element zeigt die PDF-Anlagen eines Datensatzes direkt im
Formular an — zum Blättern, Zoomen, Suchen und Drucken über den nativen
Browser-PDF-Viewer. Typischer Anwendungsfall: eine Rechnungskontrolle, bei
der man die eingescannte Eingangsrechnung neben den Kontierungsfeldern prüft.
Schnellstart über den Baukasten¶
- Öffne im Formular-Editor den Baukasten → Kategorie Layout → Baustein „PDF-Viewer (Dateianlage)" und ziehe ihn ins Formular.
- Aktiviere für das Formular die Dateianlagen (Formular-Eigenschaften → Erweiterte Einstellungen → Dateianlagen aktivieren). Ohne Anlagen hat der Viewer nichts anzuzeigen.
- In der Laufzeit lädt der Anwender die PDF über das Anlagen-Panel (Büroklammer-Symbol) hoch — sie erscheint sofort im Viewer.
Nur in der Laufzeit sichtbar
Der Viewer braucht einen Datensatz mit Anlagen. In der Editor-Vorschau zeigt er deshalb einen Platzhalter; die echte PDF erscheint erst beim Ausfüllen.
Schema¶
{
"rechnung_pdf": {
"type": "string",
"kc:colspan": "full",
"kc:pdfViewer": {
"height": 560,
"emptyHint": "Lade die Eingangsrechnung als PDF an.",
"filename": "rechnung"
}
}
}
| Option | Bedeutung | Default |
|---|---|---|
height |
Höhe des Viewers in Pixeln | 640 |
emptyHint |
Hinweistext, solange keine PDF angehängt ist | „Noch keine PDF-Anlage." |
filename |
optionale Vorauswahl: bevorzugt die Anlage, deren Dateiname exakt passt oder den Text enthält | – |
Das Element trägt keine Daten (es erzeugt keine DB-Spalte) — es ist ein
reines Präsentations-Element wie kc:image. Sind mehrere PDFs angehängt,
blendet der Viewer oben ein Auswahl-Dropdown ein; ↻ lädt die Anlagenliste
neu, ↗ öffnet die PDF in einem neuen Tab.
Viewer erst zeigen, wenn eine PDF da ist
Der Viewer bringt zwar einen eigenen Leerzustand mit — wer das ganze Element (inkl. Rahmen) aber erst bei vorhandener Anlage einblenden will, setzt eine Sichtbarkeitsbedingung:
ctx.attachments steht in KCForms auch clientseitig in Bedingungen
(kc:visibleIf/kc:requiredIf/kc:readonlyIf) bereit — die Länge ist die
Anzahl der Anlagen des aktuellen Datensatzes und aktualisiert sich sofort beim
Hoch-/Runterladen. In der Editor-Vorschau (ohne Datensatz) ist die Länge 0,
das Element also ausgeblendet — zum Bearbeiten wählt man es in der Felder-Liste.
Beispiel-Formular¶
Unter System-Administration → Formular-Bausteine → Beispiele lässt sich das Demo-Formular
„Rechnungskontrolle & Kontierung" installieren. Es zeigt den PDF-Viewer
zusammen mit Lieferanten-, Rechnungs- und Kontierungsfeldern; ein
onFieldChange-Hook rechnet Netto, MwSt-Betrag und Gesamt automatisch aus
Bruttosumme und MwSt-Satz.
Technik / Sicherheit¶
Die PDF wird per fetch→Blob→Object-URL geladen und in einem <iframe>
angezeigt — so rendert der Browser sie inline (mit eigener PDF-Leiste), obwohl
der Download-Endpoint Content-Disposition: attachment sendet. Es werden nur
Anlagen des aktuellen Datensatzes geladen (gespeicherte instanceId bzw.
Draft-Token); ein direkter Zugriff auf fremde Anlagen ist nicht möglich.
Siehe auch: Präsentations-Elemente · Dateianlagen einschalten · Dateianlagen im Skript.