Signatur
Beschreibung
fdf_set_on_import_javascript ermöglicht es, einem FDF-Dokument (Forms Data Format) ein JavaScript-Skript hinzuzufügen, das von Adobe Acrobat automatisch ausgeführt wird, sobald die FDF-Datei geöffnet oder importiert wird. FDF-Dateien werden üblicherweise genutzt, um Formulardaten für PDF-Dokumente zu übermitteln.
Der Parameter before_data_import steuert, ob das Skript vor oder nach dem eigentlichen Datenimport ausgeführt werden soll. Damit lassen sich beispielsweise Validierungen oder Vorbereitungsschritte unmittelbar beim Öffnen der FDF durchführen.
Diese Funktion ist Teil der FDF-Erweiterung (fdf), die eine Schnittstelle zur Adobe FDF Toolkit-Bibliothek bietet. Sie ist besonders nützlich in Workflows, bei denen PDF-Formulare mit serverseitig generierten Daten und Aktionsskripten ausgestattet werden sollen.
Hinweis: Die FDF-Erweiterung ist veraltet und wird in modernen PHP-Versionen sowie aktuellen Acrobat-Versionen kaum noch eingesetzt. Für neue Projekte sollten Alternativen wie pdftk oder Bibliotheken wie FPDF in Betracht gezogen werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $fdf_document Pflicht | resource | Eine FDF-Dokumentressource, wie sie von fdf_create() oder fdf_open() zurückgegeben wird. |
|
| $script Pflicht | string | Der JavaScript-Code als Zeichenkette, der beim Öffnen der FDF in Acrobat ausgeführt werden soll. | |
| $before_data_import Pflicht | bool | Gibt an, ob das Skript vor (true) oder nach (false) dem Import der FDF-Daten ausgeführt werden soll. |
Rückgabewert
true bei Erfolg zurück, andernfalls false.Beispiele
JavaScript beim FDF-Import hinzufügen
<?php
// Neues FDF-Dokument erzeugen
$fdf = fdf_create();
// Formularfeld-Wert setzen
fdf_set_value($fdf, 'Vorname', 'Max');
fdf_set_value($fdf, 'Nachname', 'Mustermann');
// JavaScript hinzufügen, das VOR dem Datenimport ausgeführt wird
$script = 'app.alert("FDF wird importiert!");';
fdf_set_on_import_javascript($fdf, $script, true);
// FDF an den Browser senden
header('Content-Type: application/vnd.fdf');
fdf_save($fdf);
fdf_close($fdf);
?>
JavaScript nach dem Datenimport ausführen
<?php
$fdf = fdf_create();
fdf_set_value($fdf, 'Status', 'Genehmigt');
// Skript NACH dem Import ausführen, z.B. zur Benachrichtigung
$script = 'app.alert("Daten wurden erfolgreich importiert.");';
fdf_set_on_import_javascript($fdf, $script, false);
header('Content-Type: application/vnd.fdf');
fdf_save($fdf);
fdf_close($fdf);
?>
// Wichtig · Fallstricke
Sicherheitshinweis: Das eingebettete JavaScript wird direkt in Adobe Acrobat auf dem Client ausgeführt. Benutzereingaben dürfen niemals ungeprüft als Skript-Inhalt verwendet werden, da dies zu Code-Injection führen kann. Stets nur serverseitig definierte, statische Skripte einbetten.
Veraltete Erweiterung: Die fdf-Erweiterung ist seit langer Zeit nicht mehr aktiv weiterentwickelt worden und in vielen PHP-Umgebungen nicht verfügbar. Für neue Projekte sollten modernere Alternativen zur PDF/Formular-Verarbeitung genutzt werden.
Die Funktion steht nur zur Verfügung, wenn PHP mit der FDF-Bibliothek (--with-fdftk) kompiliert wurde.