Start · Sprachen · PHP · Referenz · fdf_set_value

fdf_set_value

Funktion

Legt den Wert eines benannten Feldes in einem FDF-Dokument fest.

seit PHP 4.0.0 Kategorie: io

Signatur

fdf_set_value(resource $fdf_document, string $fieldname, mixed $value, int $isName = 0): bool

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

Typ
bool
Beschreibung
Gibt 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.