b1fb3efaa1
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
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)
<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>