PDF-Formular ausfüllen
Der Service Task „PDF-Formular ausfüllen“ trägt Werte aus dem Prozess in die Textfelder eines ausfüllbaren PDF-Formulars ein und speichert das Ergebnis als neue Datei. Er eignet sich für vorgegebene Formulare, die nicht neu gestaltet werden sollen, etwa amtliche Vordrucke oder Bescheinigungen. Für frei gestaltete Dokumente ist PDF aus Vorlage erzeugen der passende Service.
Technischer Name prio_pdfFillForm · Kategorie im Dialog „Service-Task auswählen“: Dokumente & PDF
Wann wird dieser Service verwendet?
- Teilnahmebescheinigungen: Die Musterfirma GmbH füllt nach einer Schulung ihr Bescheinigungs-Formular mit Name, Schulungstitel und Datum.
- Vordrucke von Dritten: Ein Formular eines Herstellers oder einer Behörde wird mit Kundendaten vorbelegt und dem Kunden zur Unterschrift geschickt.
- Wartungsprotokolle: Ein Protokoll-Formular wird mit Geräte- und Kundendaten vorausgefüllt, der Techniker ergänzt den Rest.
Voraussetzungen
Das PDF muss ein echtes Formular mit benannten Feldern sein (AcroForm). Gefüllt werden ausschließlich Textfelder; Kontrollkästchen, Auswahlfelder und Optionsfelder bleiben unverändert. Die Feldnamen stehen in der Formularansicht eines PDF-Programms und müssen in formData genau so geschrieben werden, einschließlich Groß- und Kleinschreibung.
Eingabe
| Feld | Typ | Pflicht | Bedeutung |
|---|---|---|---|
pdf |
Datei-Objekt | ja | Das Formular-PDF als {referenceId, filename, contentType} |
formData |
Objekt | ja | Zuordnung Feldname → Wert. Die Werte müssen Texte sein; Zahlen und Daten vorher mit $string() oder $fromMillis() formatieren |
{
"pdf": vorlage.teilnahmebescheinigung,
"formData": {
"teilnehmer_name": teilnehmer.vorname & " " & teilnehmer.nachname,
"schulung_titel": schulung.titel,
"schulung_datum": $fromMillis($toMillis(schulung.datum), "[D01].[M01].[Y0001]"),
"ort": "Augsburg"
}
}
Ausgabe
{
"filename": "teilnahmebescheinigung.pdf",
"referenceId": "01JCX4R9M2T7V8W3Y5Z6A7B8C9",
"contentType": "application/pdf"
}
Ein Datei-Objekt für die neue Datei im Pantarey-Speicher. filename ist der Name der Vorlage; die Felder bleiben bearbeitbar, das Formular wird nicht fixiert. Das Original wird nicht verändert. Das Ergebnis landet unter dem Ergebnispfad, z. B. bescheinigung.
Für einen eigenen Dateinamen wird das Ergebnis im Output-Ausdruck umbenannt:
{ "referenceId": referenceId, "contentType": contentType, "filename": "Bescheinigung-" & $$.teilnehmer.nachname & ".pdf" }
Fehler und Verhalten
- Fehlende Eingabe wirft
No PDF provided for form filling; ein nicht ladbares PDF wirft beim Laden. Mit Fehler-Randereignis läuft der Prozess dort weiter, ohne Randereignis endet der Vorgang im Fehler mit Wiederaufsetzpunkt und Fehler-Mail an den Prozessverantwortlichen. - Feldfehler sind still: Ein unbekannter Feldname, ein Feld, das kein Textfeld ist, oder ein Wert, der kein Text ist, wird übersprungen; das Feld bleibt leer, der Schritt gilt als erfolgreich. Ein PDF ohne Formular liefert eine unveränderte Kopie. Welche Felder gefüllt wurden, meldet der Service nicht zurück.
- Der Service liefert nie
{status, message}. - Zeitgrenze 900 Sekunden. Es wird eine neue Datei gespeichert; Wiederholungen bei vorübergehenden Fehlern (bis zu drei Versuche) erzeugen im schlimmsten Fall eine zweite Datei, aber keinen Schaden.
- Im Dry Run wird keine Datei erzeugt; der Schritt liefert eine Beispielausgabe aus dem Katalog.
Beispiel
Nach einer Schulung erzeugt die Musterfirma GmbH je Teilnehmer eine Bescheinigung. Die Vorlage liegt als Wert im Prozess oder im Datensatz der Schulung unter vorlage.teilnahmebescheinigung; in der Nachricht stehen teilnehmer und schulung.
- Input-Ausdruck wie oben, mit vier Textfeldern des Formulars.
- Output-Ausdruck benennt die Datei um, Ergebnispfad
bescheinigung. - Ausgabe:
{ "filename": "Bescheinigung-Huber.pdf", "referenceId": "01JC…", "contentType": "application/pdf" }. - Nächster Schritt: E-Mail versenden an externe Empfänger (eigene Domain) mit
bescheinigungals Anhang; danach speichert ein Datenbank-Schritt die Datei am Teilnehmerdatensatz.
Häufige Fragen
Die Datei ist da, aber einzelne Felder sind leer.
Der Feldname in formData stimmt nicht genau mit dem Namen im PDF überein (auch Groß-/Kleinschreibung), das Feld ist kein Textfeld, oder der Wert war kein Text. Solche Felder werden ohne Fehlermeldung übersprungen.
Können Kontrollkästchen angehakt werden?
Nein, nur Textfelder werden gefüllt. Kontrollkästchen, Optionsfelder und Auswahllisten bleiben, wie sie in der Vorlage sind.
Soll das Formular nach dem Füllen nicht mehr änderbar sein?
Die Felder bleiben bearbeitbar. Ein Fixieren der Felder bietet der Service nicht.
Nächster Schritt
PDF aus Vorlage erzeugen: frei gestaltete PDFs aus einer HTML-Vorlage mit Handlebars erzeugen.