Signatur
Beschreibung
fdf_set_value() setzt den Wert eines Feldes innerhalb eines FDF-Dokuments (Forms Data Format). FDF-Dokumente werden typischerweise verwendet, um Formulardaten für PDF-Formulare zu übertragen, ohne das vollständige PDF-Dokument zu senden.
Der Parameter isName steuert, ob der übergebene Wert als FDF-Name-Objekt (1) oder als normaler String-Wert (0) behandelt werden soll. Für die meisten Anwendungsfälle, wie das Setzen von Texteingaben oder Checkboxen, reicht der Standardwert 0 aus.
Diese Funktion ist besonders nützlich beim serverseitigen Befüllen von PDF-Formularen. Dabei wird ein FDF-Dokument erzeugt (via fdf_create()), mit fdf_set_value() mit Daten befüllt und anschließend mit dem passenden MIME-Typ application/vnd.fdf an den Client gesendet, der ein geeignetes PDF-Anzeigeprogramm benötigt.
Hinweis: Die FDF-Erweiterung ist seit PHP 7.0 offiziell als PECL-Paket ausgelagert und in modernen PHP-Versionen standardmäßig nicht mehr verfügbar. Für neue Projekte sollten Alternativen wie TCPDF oder pdfparser in Betracht gezogen werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $fdf_document Pflicht | resource | Ein FDF-Dokument-Handle, das zuvor mit fdf_create() oder fdf_open() erzeugt wurde. |
|
| $fieldname Pflicht | string | Der Name des Feldes im PDF-Formular, dessen Wert gesetzt werden soll. Der Name muss exakt mit dem Feldnamen im zugehörigen PDF-Dokument übereinstimmen. | |
| $value Pflicht | mixed | Der Wert, der dem Feld zugewiesen werden soll. Kann ein String, eine Zahl oder ein Array (für Listenfelder) sein. | |
| $isName | int | 0 | Gibt an, ob der Wert als FDF-Name-Objekt behandelt werden soll (1) oder als normaler Stringwert (0). Für Checkboxen oder Radio-Buttons wird häufig 1 benötigt. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. wenn das FDF-Handle ungültig ist).Beispiele
Einfaches Befüllen eines PDF-Formulars via FDF
<?php
// FDF-Dokument erstellen
$fdf = fdf_create();
// Felder setzen
fdf_set_value($fdf, 'vorname', 'Max');
fdf_set_value($fdf, 'nachname', 'Mustermann');
fdf_set_value($fdf, 'email', 'max@example.com');
// Zugehöriges PDF-Formular angeben
fdf_set_file($fdf, 'http://example.com/formular.pdf');
// FDF-Daten an den Browser senden
header('Content-Type: application/vnd.fdf');
fdf_save($fdf);
fdf_close($fdf);
?>
Checkbox-Wert mit isName setzen
<?php
$fdf = fdf_create();
// Checkbox-Feld: Wert als FDF-Name-Objekt setzen (isName = 1)
fdf_set_value($fdf, 'agb_akzeptiert', 'Yes', 1);
// Textfeld normal setzen
fdf_set_value($fdf, 'kommentar', 'Alles in Ordnung.', 0);
fdf_set_file($fdf, 'http://example.com/bestellung.pdf');
header('Content-Type: application/vnd.fdf');
fdf_save($fdf);
fdf_close($fdf);
?>
// Wichtig · Fallstricke
Deprecation/Verfügbarkeit: Die FDF-Erweiterung (fdf_*) ist seit PHP 7.0 nicht mehr im PHP-Kern enthalten und steht nur noch als PECL-Paket zur Verfügung. In PHP 8.x ist sie möglicherweise gar nicht verfügbar. Für neue Projekte sollten moderne Alternativen genutzt werden.
Sicherheit: Feldinhalte, die aus Benutzereingaben stammen, sollten vor dem Übergeben an fdf_set_value() validiert und bereinigt werden, da fehlerhafte oder böswillig manipulierte Werte das erzeugte FDF-Dokument korrumpieren können.
Feldnamen: Bei hierarchischen PDF-Formularen müssen Feldnamen mit dem vollständigen Pfad angegeben werden (z. B. Gruppe.Unterfeld.Wert). Ein falsch angegebener Feldname führt zu keiner Fehlermeldung, das Feld bleibt im PDF jedoch leer.