====== JSON-Druckvorlage: Ordneretikett ====== Diese JSON-Vorlage beschreibt den Aufbau eines PDFs für ein Ordneretikett im Format A7. Sie wird im System gespeichert und kann vom API direkt aufgerufen werden. ===== Gesamtstruktur ===== { "meta": { ... }, "page": { ... }, "header": { ... }, "footer": { ... }, "elements": [ ... ] } ===== 1. meta ===== Metadaten des PDFs, die im Dokument eingebettet werden. ^ Feld ^ Beschreibung ^ Beispiel ^ | title | Dokumenttitel | "{{folder_name}}" | | author | Autor (Name der Person oder Organisation) | "{{first_name}} {{last_name}}" | | subject | Thema des Dokuments | "Ordner-Etikett" | | keywords | Stichworte, durch Kommas getrennt | "{{keywords}}" | ===== 2. page ===== Seiteneinstellungen für das Etikett. ^ Feld ^ Beschreibung ^ Beispiel ^ Mögliche Werte ^ | size | Papierformat | "A7" | A4, A5, A6, A7, Letter | | orientation | Ausrichtung der Seite | "P" | P (Hochformat), L (Querformat) | | margin | Seitenränder in mm | {top:20,...} | top, bottom, left, right | ===== 3. header ===== Kopfzeile auf jeder Seite. ^ Feld ^ Beschreibung ^ Beispiel ^ | enabled | Header anzeigen (true/false) | true | | height | Höhe in mm | 15 | | content | Textinhalt mit Variablen | "Musterfirma GmbH – {{date}}" | | font | Schriftart | "helvetica" | | font_size | Schriftgröße in pt | 10 | | style | Stil (B, I, U, Kombinationen) | "B" | | align | Ausrichtung des Textes | "C" (zentriert) | ===== 4. footer ===== Fußzeile auf jeder Seite. ^ Feld ^ Beschreibung ^ Beispiel ^ | enabled | Footer anzeigen (true/false) | true | | height | Höhe in mm | 15 | | content | Textinhalt mit Variablen | "Seite {{page_no}} von {{total_pages}}" | | font | Schriftart | "helvetica" | | font_size | Schriftgröße in pt | 8 | | style | Stil | "I" | | align | Ausrichtung | "C" | ===== 5. elements ===== Liste der darzustellenden Elemente im Layout. Reihenfolge ist relevant. ==== Typ: text ==== ^ Feld ^ Beschreibung ^ Beispiel ^ | type | "text" | | | x, y | Position in mm | 20, 40 | | width | Breite in mm | 170 | | font | Schriftart | "helvetica" | | font_size | Schriftgröße in pt | 14 | | style | Stil (B, I, U) | "B" | | align | Ausrichtung (L, C, R) | "L" | | multiline | Zeilenumbruch erlaubt (true/false) | false | | content | Textinhalt mit Platzhaltern | "{{title}}" | ==== Typ: line ==== ^ Feld ^ Beschreibung ^ Beispiel ^ | type | "line" | | | x1, y1 | Startpunkt der Linie | 20, 55 | | x2, y2 | Endpunkt der Linie | 190, 55 | | style | Stilobjekt mit Dicke und Farbe | {"width":0.3,"color":[0,0,0]} | ===== 6. Platzhaltervariablen ===== Diese Variablen können im `content`, `meta`, `header` oder `footer` verwendet werden: ^ Variable ^ Beschreibung ^ | {{folder_name}} | Name des Ordners (z. B. für den PDF-Titel) | | {{first_name}} | Vorname des Erstellers / Nutzers | | {{last_name}} | Nachname | | {{keywords}} | Schlagworte | | {{title}} | Haupttitel des Etiketts (z. B. Projekttitel) | | {{description}} | Beschreibung des Inhalts im Ordner | | {{date}} | Aktuelles Datum (vom Backend gesetzt) | | {{page_no}} | Aktuelle Seitennummer (von TCPDF automatisch) | | {{total_pages}} | Gesamtseitenanzahl (von TCPDF automatisch) | ===== Hinweise ===== * Alle Maßeinheiten sind in **Millimetern**. * Farben werden als RGB-Array angegeben, z. B. `[0, 0, 0]` für Schwarz. * Kommentare im JSON selbst sind nicht erlaubt – du kannst aber `_comment`-Felder nutzen. * Diese Vorlage eignet sich ideal für **Etiketten, Karteikarten oder kleine Drucksachen**. ===== Beispiel ===== { "meta": { "title": "{{folder_name}}", "author": "{{first_name}} {{last_name}}", "subject": "Ordner-Etikett", "keywords": "{{keywords}}" }, "page": { "size": "A7", "orientation": "P", "margin": { "top": 20, "bottom": 20, "left": 15, "right": 15 } }, "header": { "enabled": true, "height": 15, "content": "Musterfirma GmbH – {{date}}", "font": "helvetica", "font_size": 10, "style": "B", "align": "C" }, "footer": { "enabled": true, "height": 15, "content": "Seite {{page_no}} von {{total_pages}}", "font": "helvetica", "font_size": 8, "style": "I", "align": "C" }, "elements": [ { "type": "text", "x": 20, "y": 40, "width": 170, "font": "helvetica", "font_size": 14, "style": "B", "align": "L", "multiline": false, "content": "{{title}}" }, { "type": "text", "x": 20, "y": 50, "width": 170, "font": "helvetica", "font_size": 12, "style": "", "align": "L", "multiline": false, "content": "{{description}}" }, { "type": "text", "x": 20, "y": 60, "width": 100, "font": "helvetica", "font_size": 12, "style": "", "align": "L", "multiline": false, "content": "Datum: {{date}}" }, { "type": "line", "x1": 20, "y1": 55, "x2": 190, "y2": 55, "style": { "width": 0.3, "color": [0, 0, 0] } } ] }