Start · Sprachen · PHP · Referenz · fdf_set_file

fdf_set_file

Funktion

Setzt die URL oder den Pfad des PDF-Dokuments, das die FDF-Formulardaten anzeigen soll.

seit PHP 4.0.0 Kategorie: io

Signatur

fdf_set_file(resource $fdf_document, string $url): bool

Beschreibung

fdf_set_file() legt in einem FDF-Dokument fest, welches PDF-Formular die enthaltenen Formulardaten darstellen soll. FDF (Forms Data Format) ist ein schlankes Format zum Austausch von Formularfelddaten, das von Acrobat verwendet wird. Wenn ein FDF-Dokument an den Browser gesendet wird, öffnet Adobe Acrobat/Reader automatisch das angegebene PDF und befüllt es mit den FDF-Daten.

Der zweite Parameter $url kann entweder eine absolute URL (z. B. https://example.com/form.pdf) oder ein lokaler Dateipfad sein, der auf das zugehörige PDF-Formular verweist. Acrobat Reader wertet diesen Pfad aus, um das korrekte PDF zu laden, bevor die Felddaten eingetragen werden.

Typischer Einsatz: Ein PHP-Skript erzeugt per fdf_create() ein FDF-Dokument, füllt mit fdf_set_value() die Felder und gibt mit fdf_set_file() an, welches PDF-Template genutzt werden soll. Anschließend wird das FDF mit dem MIME-Typ application/vnd.fdf an den Client ausgeliefert.

Hinweis: Die FDF-Extension (PECL-Paket fdf) ist seit PHP 5.3 nicht mehr Teil der Standarddistribution und gilt als veraltet. Für neue Projekte empfiehlt sich eine Alternative wie pdftk oder eine PDF-Bibliothek wie FPDF oder TCPDF.

Parameter

Name Typ Default Beschreibung
$fdf_document Pflicht resource Eine FDF-Dokumentressource, die zuvor mit fdf_create() oder fdf_open() erzeugt wurde.
$url Pflicht string Absolute URL oder Dateipfad des PDF-Formulars, das die FDF-Daten anzeigen soll. Beispiel: https://example.com/formular.pdf.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false im Fehlerfall.

Beispiele

FDF-Datei mit verknüpftem PDF erzeugen und ausgeben

<?php
// FDF-Dokument erstellen
$fdf = fdf_create();

// Formularfelder befüllen
fdf_set_value($fdf, 'Vorname', 'Max');
fdf_set_value($fdf, 'Nachname', 'Mustermann');
fdf_set_value($fdf, 'Email', 'max@example.com');

// PDF-Vorlage verknüpfen
fdf_set_file($fdf, 'https://example.com/formulare/kontakt.pdf');

// Korrekte Header setzen
header('Content-Type: application/vnd.fdf');
header('Content-Disposition: attachment; filename="daten.fdf"');

// FDF ausgeben
fdf_save($fdf);

// Ressource freigeben
fdf_close($fdf);
?>

FDF-Datei in eine Datei schreiben

<?php
$fdf = fdf_create();

fdf_set_value($fdf, 'Bestellnummer', '2024-001');
fdf_set_value($fdf, 'Betrag', '149,99');

// Lokalen PDF-Pfad angeben (unter Windows-Acrobat ggf. mit file://)
fdf_set_file($fdf, 'https://example.com/pdf/bestellung.pdf');

// In Datei speichern statt direkt ausgeben
$result = fdf_save($fdf, '/tmp/bestellung_daten.fdf');

if ($result) {
    echo 'FDF-Datei erfolgreich gespeichert.';
} else {
    echo 'Fehler beim Speichern der FDF-Datei.';
}

fdf_close($fdf);
?>
FDF-Datei erfolgreich gespeichert.

// Wichtig · Fallstricke

Veraltete Extension: Die fdf-Extension ist seit PHP 5.3.0 nicht mehr gebündelt und muss als PECL-Paket installiert werden. In modernen PHP-Versionen (7.x, 8.x) ist sie kaum noch verfügbar. Für neue Projekte sollten Alternativen wie pdftk, mikehaertl/phpwkhtmltopdf oder spezialisierte PDF-Bibliotheken verwendet werden.

Sicherheit: Wenn der Wert von $url aus Benutzereingaben stammt, muss er unbedingt validiert und gefiltert werden, um Open-Redirect- oder Path-Traversal-Angriffe zu vermeiden. Nur vertrauenswürdige, fest kodierte URLs sollten verwendet werden.

Der MIME-Typ für FDF-Dateien lautet application/vnd.fdf. Ohne den richtigen Content-Type-Header erkennt der Browser die Datei möglicherweise nicht korrekt und öffnet sie nicht in Adobe Acrobat.