# `pdf_sign_at_text` — Stempeln/Signieren an gefundener Textstelle **Zweck:** Sucht eine Phrase im PDF-Text (z. B. eine Unterschriftszeile) und platziert relativ dazu einen Sichtvermerk-Stempel samt kryptografischer Signatur — ohne feste Koordinaten pflegen zu müssen. Robust gegen Layout-Verschiebungen der Vorlage. Der Stempel wird eingebrannt, die Datei in-place überschrieben. Wird die Phrase nicht gefunden, bricht der Task mit Fehler ab. **Parameter** | Name | Pflicht? | Default | Beschreibung | |---|---|---|---| | `file` | ja | — | Zu signierendes PDF (in-place). | | `search` | ja | — | Exakte Suchphrase (ein oder mehrere Wörter, Whitespace wird normalisiert). Anker ist das **erste Wort** der Phrase. | | `text` | ja | — | Stempeltext; `{{TODAY}}` steht hier zusätzlich bereit (Datum **zum Signierzeitpunkt**, nicht Workflow-Start). | | `seite` | nein | `auto` | `auto` = alle Seiten durchsuchen, erste Treffer-Seite gewinnt; oder konkrete Seitennummer. | | `case_sensitive` | nein | `false` | Groß-/Kleinschreibung bei der Suche beachten. | | `x_offset_pt` | nein | `0` | X-Versatz in PDF-Punkten relativ zur linken Kante des Fundworts. | | `y_offset_pt` | nein | `0` | Y-Versatz in PDF-Punkten relativ zur Oberkante des Fundworts. **Y=0 oben**; negativ = nach oben (über den Text). | | `breite_pt` | nein | `120` | Stempelbreite in PDF-Punkten. | | `hoehe_pt` | nein | `30` | Stempelhöhe in PDF-Punkten. | | `fontsize` | nein | `12` | Schriftgröße des Stempeltexts (vertikal zentriert im Stempelrechteck). | **Eingangswerte:** `{{latest_pdf_path}}` (typisch als `file`); Kontext-Variablen für den Stempeltext (z. B. `{{pruefer_nachname}}`). **Ausgangswerte:** - `latest_pdf_path`, `latest_pdf_url` - Diagnose: `_matched_page` (Fundseite), `_matched_x`, `_matched_y_top` (Fundposition in pt, Y top-down), `_stamp_x`, `_stamp_y` (tatsächliche Stempelposition inkl. Offsets) ```xml {{latest_pdf_path}} Anordnungsbefugten auto 0 -25 120 30 {{TODAY}}, gez. {{pruefer_nachname}} ```