PDF-Formularfelder mit Namen, Typen und Werten auflisten
Ein PDF kann wie eine einfache Seite aussehen und dennoch unter dem sichtbaren Layout ein strukturiertes Formular enthalten.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Diese Funktion liest diese Struktur und liefert ein übersichtliches Verzeichnis sämtlicher Felder mit vollständigem Namen, erkanntem Typ und aktuellem Wert. Sie unterstützt die üblichen AcroForm-Steuerelemente in Anträgen, Fragebögen, Genehmigungen und Aufnahmeformularen. Die Verarbeitung erfolgt deterministisch und lokal: Es gibt keine Netzwerkanfragen, Modellschätzungen oder zufälligen Ergebnisse. Ist die Datei kein PDF, beschädigt oder ohne Formularfelder, erhalten Sie einen eindeutigen Eingabefehler statt eines leeren Ergebnisses, das fälschlich als Erfolg gelten könnte.
Untersuchen Sie die tatsächliche PDF-Formularstruktur
Interaktive PDF-Formulare speichern ihre Steuerelemente getrennt von den Wörtern und Linien, die auf den Seiten gezeichnet werden. Ein Feld kann intern customer.address.postcode heißen, obwohl auf der Seite nur „Postleitzahl“ steht. Diese Funktion folgt dem Dokumentkatalog zum AcroForm-Wörterbuch, durchläuft den Feldbaum, übernimmt vererbte Eigenschaften und gibt die Endfelder in Dokumentreihenfolge zurück. Jedes Ergebnis enthält den vollständigen Namen, einen normalisierten Typ und den derzeit im PDF gespeicherten Wert. Textfelder, Kontrollkästchen, Optionsgruppen, Dropdowns, Auswahllisten, Schaltflächen und Signaturfelder werden anhand des im Dokument festgelegten Feldtyps und der Kennzeichen unterschieden. Hierarchische Namen werden mit Punkten verbunden, damit ähnlich benannte Steuerelemente in verschiedenen Abschnitten eindeutig bleiben. Die Ausgabe eignet sich dadurch als maschinenlesbares Schemaverzeichnis und ist nicht bloß eine Extraktion sichtbarer Seitentexte. Ein Kontrollkästchen ohne aktiven Wert erscheint als false; ein nicht unterzeichnetes Signaturfeld wird erkannt, ohne eine vorhandene Signatur vorzutäuschen.
Übermitteln Sie das Dokument und lesen Sie die Antwort
Senden Sie das PDF im Parameter pdf entweder als reinen base64-Text oder als base64-kodierte application/pdf-Daten-URL. Der Parser prüft zunächst Kodierung und PDF-Kopfzeile und liest anschließend die indirekten Objekte, die zum Auffinden des Katalogs und Feldbaums erforderlich sind. Die Antwort enthält fields als Datensatzliste und count als Anzahl der zurückgegebenen Felder. Die Typen tragen praktische Bezeichnungen wie TextField, CheckBox, RadioGroup, Dropdown, OptionList, PushButton und Signature. Aktuelle Werte bleiben als Zeichenketten oder Listen erhalten, wenn sie so im PDF gespeichert sind; der Zustand eines Kontrollkästchens wird als boolescher Wert ausgegeben. Leere Textsteuerelemente erhalten eine leere Zeichenkette und lassen sich so von fehlenden Feldern unterscheiden. Verwechseln Sie die gedruckte Beschriftung neben einem Steuerelement nicht mit dessen internem Namen. Bei fehlenden Feldern wird absichtlich ein Fehler ausgegeben, damit Ihre Automatisierung ein reduziertes PDF, einen Scan oder einen falschen Anhang erkennt. Die zulässige Größe ist für eine berechenbare Verarbeitung begrenzt.
Nutzen Sie das Verzeichnis sicher in Dokumentabläufen
Ein Feldverzeichnis ist ein sinnvoller erster Schritt, bevor Sie PDF-Formulare ausfüllen, prüfen, migrieren oder auditieren. Ein Aufnahmesystem kann beispielsweise die gelieferten Namen mit den Datenbankschlüsseln vergleichen, bevor es eine Vorlage befüllt. Eine Qualitätssicherung kann bestätigen, dass eine überarbeitete Fassung weiterhin alle Pflichtfelder enthält und keine Steuerelementtypen unerwartet geändert wurden. Bei einer Archivmigration lassen sich die eingebetteten Werte jedes interaktiven Dokuments protokollieren, bevor es reduziert wird. Da der Algorithmus keine externen Dienste aufruft und keine Werte aus dem Seitenbild ableitet, erzeugen identische Bytes stets dasselbe JSON. Diese Vorhersagbarkeit ist für Tests und Prüfpfade wichtig. Die Funktion liest jedoch AcroForm-Strukturen und führt keine optische Erkennung durch: Ein gescanntes Papierformular enthält Pixel, aber keine interaktiven Felder, und löst deshalb den entsprechenden Fehler aus. Dokumente werden weder verändert, reduziert, signiert, entschlüsselt noch repariert. Verschlüsselte Dateien und PDFs mit unlesbaren Formularobjekten müssen Sie zuvor mit einem geeigneten Werkzeug vorbereiten.
Anwendungsfälle
Erfassen Sie ein Formular vor dem Ausfüllen
Ermitteln Sie die genauen internen Namen und Steuerelementtypen, die Ihr Ablauf vor dem Senden von Daten ansprechen muss.
Erkennen Sie Vorlagenregressionen
Vergleichen Sie das Verzeichnis bei einer neuen PDF-Version mit einem freigegebenen Vertrag.
Prüfen Sie gespeicherte Antworten
Extrahieren Sie aktuelle Werte aus interaktiven Anträgen oder Genehmigungen für strukturierte Prüfung und Migration.
Häufige Fragen
Was kostet eine Anfrage?
Der API-Preis beträgt $0.002 pro Anfrage.
Welche PDF-Feldtypen werden erkannt?
Die Ausgabe unterscheidet Textfelder, Kontrollkästchen, Optionsgruppen, Dropdowns, Listen, Schaltflächen und Signaturen.
Was geschieht bei einem PDF ohne Formular?
Die Anfrage liefert einen Eingabefehler mit dem Hinweis, dass das PDF keine Formularfelder enthält.
Kann ein gescanntes Papierformular gelesen werden?
Nein. Scans benötigen OCR; diese Funktion liest interaktive AcroForm-Strukturen.
Wird das Dokument verändert oder ausgefüllt?
Nein. Es werden nur Namen, Typen und aktuelle Werte gemeldet; das PDF bleibt unverändert.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/pdf/list-form-fields \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/list-form-fields", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/list-form-fields",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/list-form-fields", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/list-form-fields", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"pdf": "https://ejemplo.com/documento.pdf"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.list_form_fields",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
max_pages | 200 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |