Signatur
Beschreibung
fdf_set_encoding setzt die Zeichenkodierung für ein FDF-Dokument (Forms Data Format), das zuvor mit fdf_create() oder fdf_open() geöffnet wurde. FDF ist ein von Adobe entwickeltes Dateiformat zum Austausch von Formulardaten mit PDF-Dokumenten.
Die Funktion muss aufgerufen werden, bevor Feldwerte in das FDF-Dokument geschrieben werden, da die Kodierung bestimmt, wie Zeichenketten intern gespeichert und interpretiert werden. Typische Werte sind 'shift-jis' für japanische Zeichen oder '' (leerer String) für die standardmäßige PDFDocEncoding.
Diese Funktion ist nur verfügbar, wenn PHP mit FDF-Unterstützung kompiliert wurde (die fdftk-Bibliothek muss vorhanden sein). In modernen PHP-Versionen (ab PHP 8.0) ist diese Erweiterung nicht mehr verfügbar, da sie als veraltet gilt und kaum noch aktiv gepflegt wird.
- Verwende
''(leerer String) für die Standard-PDFDocEncoding. - Verwende
'shift-jis'für japanische Multibyte-Zeichensätze. - Die Kodierung muss vor dem Schreiben von Feldwerten gesetzt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $fdf_document Pflicht | resource | Eine FDF-Dokumentressource, die zuvor mit fdf_create() oder fdf_open() erzeugt wurde. |
|
| $encoding Pflicht | string | Die zu verwendende Zeichenkodierung, z. B. 'shift-jis' für Japanisch oder ein leerer String '' für die Standard-PDFDocEncoding. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. ungültige Ressource oder nicht unterstützte Kodierung).Beispiele
FDF-Dokument mit Standard-Kodierung erstellen
<?php
// FDF-Dokument erstellen
$fdf = fdf_create();
// Standard-PDFDocEncoding setzen (leerer String)
if (fdf_set_encoding($fdf, '')) {
echo "Kodierung erfolgreich gesetzt.\n";
} else {
echo "Fehler beim Setzen der Kodierung.\n";
}
// Feldwert setzen
fdf_set_value($fdf, 'Vorname', 'Max');
fdf_set_value($fdf, 'Nachname', 'Mustermann');
// FDF-Datei speichern
fdf_save($fdf, '/tmp/formular.fdf');
fdf_close($fdf);
?>
FDF-Dokument mit japanischer Kodierung (Shift-JIS)
<?php
// FDF-Dokument für japanische Formulardaten erstellen
$fdf = fdf_create();
// Shift-JIS Kodierung für japanische Zeichen setzen
if (fdf_set_encoding($fdf, 'shift-jis')) {
echo "Shift-JIS Kodierung gesetzt.\n";
} else {
echo "Fehler beim Setzen der Kodierung.\n";
}
// Japanischen Feldwert setzen
fdf_set_value($fdf, 'Namensfeld', '山田太郎');
// HTTP-Header setzen und FDF ausgeben
header('Content-Type: application/vnd.fdf');
fdf_save($fdf);
fdf_close($fdf);
?>
// Wichtig · Fallstricke
Veraltete Erweiterung: Die FDF-Erweiterung (ext/fdf) gilt seit PHP 5 als veraltet und ist ab PHP 8.0 nicht mehr im offiziellen PHP-Kern enthalten. Für neue Projekte sollten stattdessen moderne Bibliotheken wie TCPDF oder PdfParser für die PDF/FDF-Verarbeitung genutzt werden.
Die Funktion muss unbedingt vor dem Setzen von Feldwerten via fdf_set_value() aufgerufen werden, da sonst bereits geschriebene Werte möglicherweise falsch kodiert sind. Eine falsche oder vergessene Kodierung kann zu unlesbaren Sonderzeichen im erzeugten FDF-Dokument führen.