Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
pdf_templates [2025/04/23 12:53] – [JSON-Schema mit Dokument-Metadaten] oliverpdf_templates [2025/04/23 13:07] (aktuell) – [PDF-Druckvorlagen] oliver
Zeile 1: Zeile 1:
-====== PDF-Druckvorlagen ====== 
  
-===== Ordner-Etiketten ===== 
  
 +====== JSON-Druckvorlage: Ordneretikett ======
  
-==== JSON-Schema mit Dokument-Metadaten ====+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 ===== 
 + 
 +<code json> 
 +
 +  "meta": { ... }, 
 +  "page": { ... }, 
 +  "header": { ... }, 
 +  "footer": { ... }, 
 +  "elements": [ ... ] 
 +
 +</code> 
 + 
 +===== 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 =====
  
  
Zeile 11: Zeile 118:
 { {
   "meta": {   "meta": {
-    "title": "Rechnung {{rechnungsnummer}}", +    "title": "{{folder_name}}", 
-    "author": "Musterfirma GmbH", +    "author": "{{first_name}} {{last_name}}", 
-    "subject": "Rechnungsdokument", +    "subject": "Ordner-Etikett", 
-    "keywords": "Rechnung, PDF, Musterfirma", +    "keywords": "{{keywords}}"
-    "creator": "Mein PDF-Generator"+
   },   },
   "page": {   "page": {
-    "size": "A4",+    "size": "A7",
     "orientation": "P",     "orientation": "P",
     "margin": {     "margin": {
Zeile 30: Zeile 136:
     "enabled": true,     "enabled": true,
     "height": 15,     "height": 15,
-    "content": "Musterfirma GmbH – {{heutiges_datum}}",+    "content": "Musterfirma GmbH – {{date}}",
     "font": "helvetica",     "font": "helvetica",
     "font_size": 10,     "font_size": 10,
Zeile 56: Zeile 162:
       "align": "L",       "align": "L",
       "multiline": false,       "multiline": false,
-      "content": "Rechnung für {{name}}"+      "content": "{{title}}"
     },     },
     {     {
Zeile 62: Zeile 168:
       "x": 20,       "x": 20,
       "y": 50,       "y": 50,
 +      "width": 170,
 +      "font": "helvetica",
 +      "font_size": 12,
 +      "style": "",
 +      "align": "L",
 +      "multiline": false,
 +      "content": "{{description}}"
 +    },    
 +    {
 +      "type": "text",
 +      "x": 20,
 +      "y": 60,
       "width": 100,       "width": 100,
       "font": "helvetica",       "font": "helvetica",
Zeile 68: Zeile 186:
       "align": "L",       "align": "L",
       "multiline": false,       "multiline": false,
-      "content": "Datum: {{datum}}"+      "content": "Datum: {{date}}"
     },     },
     {     {
Zeile 80: Zeile 198:
         "color": [0, 0, 0]         "color": [0, 0, 0]
       }       }
-    }, 
-    { 
-      "type": "image", 
-      "x": 150, 
-      "y": 20, 
-      "width": 40, 
-      "height": 20, 
-      "path": "logo.png" 
     }     }
   ]   ]