40 lines
2.3 KiB
Markdown
40 lines
2.3 KiB
Markdown
|
|
# `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: `<task_id>_matched_page` (Fundseite), `<task_id>_matched_x`, `<task_id>_matched_y_top` (Fundposition in pt, Y top-down), `<task_id>_stamp_x`, `<task_id>_stamp_y` (tatsächliche Stempelposition inkl. Offsets)
|
||
|
|
|
||
|
|
```xml
|
||
|
|
<task type="pdf_sign_at_text" id="vorsitz_sig">
|
||
|
|
<config>
|
||
|
|
<file>{{latest_pdf_path}}</file>
|
||
|
|
<search>Anordnungsbefugten</search>
|
||
|
|
<seite>auto</seite>
|
||
|
|
<x_offset_pt>0</x_offset_pt>
|
||
|
|
<y_offset_pt>-25</y_offset_pt>
|
||
|
|
<breite_pt>120</breite_pt>
|
||
|
|
<hoehe_pt>30</hoehe_pt>
|
||
|
|
<text>{{TODAY}}, gez. {{pruefer_nachname}}</text>
|
||
|
|
</config>
|
||
|
|
</task>
|
||
|
|
```
|