diff --git a/CHANGELOG.md b/CHANGELOG.md index 83f2451..1cba2da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ ## 2026-07-08 (Listen-Tasks + MCP-Katalog) +- **`pdf_stempel_oben`: Schriftart wählbar.** Neue Parameter `schrift`, `schriftgroesse`, + `schriftstil`, `abstand_oben_mm`, `auto_verkleinern`. Neben den FPDF-Kern-Fonts steht + `NATIONFD` (*NationalFirstFontDotted*, gepunktet) zur Verfügung — dieselbe Schrift, die + `PDFER::stamper()` für die Vergabe-Unterlagen nutzt. Unbekannte Schrift → Fehlermeldung mit + Liste der verfügbaren. Eingebettete Schriften haben nur eine Schnittform, ein angeforderter + `schriftstil` wird verworfen (sonst FPDF-Abbruch „Undefined font"). Zellhöhe bleibt fix bei + 7 mm, damit große Schriften oben stehen bleiben. Vorgabe (Helvetica 12 pt fett) unverändert — + `pdf_anlagen_merge` nutzt dieselbe Routine und bleibt unberührt. `auto_verkleinern` (Default an) + schrumpft zu breiten Text, statt ihn über den Seitenrand laufen zu lassen. - **Neu: Task `liste`** — Tabelle direkt im Editor pflegen (freie Spalten, z. B. name/mail/rolle). Ergebnis ist eine Liste aus Zeilen-Objekten: `{{var}}` (loop_foreach), `{{var}}_json`, `{{var}}_anzahl`, `{{var}}_leer` und je Spalte `{{var}}__liste` (fertiger Mail-Verteiler). diff --git a/tasks/pdf_stempel_oben.md b/tasks/pdf_stempel_oben.md index 488f85f..81d5a26 100644 --- a/tasks/pdf_stempel_oben.md +++ b/tasks/pdf_stempel_oben.md @@ -1,6 +1,6 @@ # `pdf_stempel_oben` — Text oben aufstempeln -**Zweck:** Stempelt Text oben mittig auf eine PDF-Seite (z.B. „Anlage 1“). Erhält Seitengröße/Orientierung des Originals (anders als pdf_text, das auf A4 normalisiert). +**Zweck:** Stempelt Text oben mittig auf eine PDF-Seite (z.B. „Anlage 1“). Erhält Seitengröße/Orientierung des Originals (anders als pdf_text, das auf A4 normalisiert). Die Schriftart ist wählbar — auch die gepunktete `NATIONFD`, mit der die Vergabe-Unterlagen gestempelt werden. **Parameter** @@ -9,8 +9,23 @@ | `datei` | ja | — | Quell-PDF. | | `text` | ja | — | Stempeltext. | | `seite` | nein | 1 | Seitennummer. | +| `schrift` | nein | Helvetica | Schriftart, siehe Tabelle unten. | +| `schriftgroesse` | nein | 12 | Punktgröße. NATIONFD wirkt ab etwa 40. | +| `schriftstil` | nein | B | leer (normal), B, I oder BI — nur bei den Kern-Fonts. | +| `abstand_oben_mm` | nein | 5 | Abstand der Stempelzeile vom oberen Seitenrand. | +| `auto_verkleinern` | nein | true | Verkleinert die Schrift, bis der Text zwischen die Seitenränder passt. | | `dateiout` | nein | (automatisch) | Zielpfad. | +**Verfügbare Schriften** + +| Name | Beschreibung | +|---|---| +| `Helvetica` | Kern-Font, Vorgabe (fett, 12 pt) | +| `Times`, `Courier` | Kern-Fonts | +| `NATIONFD` | *NationalFirstFontDotted* — gepunktete Schulausgangsschrift; dieselbe Schrift, die `PDFER::stamper()` in `0_vorlagen/resources/Vergabe/stamper.php` verwendet | + +Die Liste wird zur Laufzeit aus dem FPDF-Font-Verzeichnis (`require/compose/vendor/fpdf/fpdf/src/Fpdf/font/`) ermittelt; wird eine unbekannte Schrift angegeben, nennt die Fehlermeldung die verfügbaren. Neue Schriften brauchen dort eine FPDF-Definitionsdatei (`.php` + `.z`), keine reine `.ttf`. + **Ausgangswerte** | Variable | Beschreibung | @@ -30,6 +45,23 @@ ``` +**Vergabe-Stempel (wie stamper.php)** + +```xml + + + {{latest_pdf_path}} + ALN-K {{submission_datum}} + NATIONFD + 40 + + +``` + **Technik / Hinweise** -- Komprimierte PDFs werden vorab via PDFER::test_and_uncompress entpackt. +- Komprimierte PDFs werden vorab via `PDFER::test_and_uncompress` entpackt. +- Eingebettete Schriften wie `NATIONFD` haben nur **eine** Schnittform; ein angeforderter `schriftstil` wird verworfen (FPDF bräche sonst mit „Undefined font“ ab). +- Die Zellhöhe ist bewusst fix (7 mm). FPDF setzt die Grundlinie auf `y + h/2 + 0.3 × Schrifthöhe` — eine mitskalierende Höhe würde große Schriften weit nach unten schieben. So bleibt der Stempel oben, wie bei `PDFER::stamper()`. +- Text wird nach `windows-1252` transliteriert (FPDF-Kern-Encoding). +- `TaskPdfAnlagenMerge` nutzt dieselbe Routine (`TaskPdfStempelOben::stempelObenMittig`) und bleibt bei der Vorgabe Helvetica 12 pt fett.