Start · Sprachen · PHP · Referenz · fdf_set_encoding

fdf_set_encoding

Funktion

Legt die Zeichenkodierung für ein FDF-Dokument fest.

seit PHP 4.3.0 Kategorie: io

Signatur

fdf_set_encoding(resource $fdf_document, string $encoding): bool

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

Typ
bool
Beschreibung
Gibt 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);
?>
Kodierung erfolgreich gesetzt.

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);
?>
Shift-JIS Kodierung gesetzt.

// 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.