Start · Sprachen · PHP · Referenz · fdf_set_flags

fdf_set_flags

Funktion

Setzt oder löscht Flags eines bestimmten Feldes in einem FDF-Dokument.

seit PHP 4.3.0 Kategorie: io

Signatur

fdf_set_flags(resource $fdf_document, string $fieldname, int $whichFlags, int $newFlags): bool

Beschreibung

fdf_set_flags() ermöglicht das Setzen oder Löschen von Feld-Flags in einem FDF-Dokument (Forms Data Format). FDF wird verwendet, um Formularfelddaten zwischen einem PDF-Dokument und einem Server auszutauschen. Mit dieser Funktion können Eigenschaften einzelner Felder, wie z. B. Schreibschutz oder Pflichtfeld, programmatisch gesteuert werden.

Der Parameter whichFlags legt fest, welche Bits der Flags-Maske überhaupt verändert werden sollen (Auswahl-Maske), während newFlags den tatsächlich zu setzenden Wert für die ausgewählten Bits enthält. Nur die in whichFlags gesetzten Bits werden im Feld verändert – alle anderen bleiben unberührt.

Die Funktion gehört zur FDF-Erweiterung von PHP, die auf der Acrobat FDF Toolkit-Bibliothek basiert. Diese Erweiterung ist veraltet und wird in modernen PHP-Versionen nicht mehr standardmäßig mitgeliefert. Für neue Projekte sollten Alternativen wie FPDI oder TCPDF in Betracht gezogen werden.

Typische Einsatzbereiche sind das Erstellen von PDF-Formularen, bei denen bestimmte Felder schreibgeschützt, ausgeblendet oder als Pflichtfelder markiert werden müssen, ohne das gesamte PDF-Dokument neu zu generieren.

Parameter

Name Typ Default Beschreibung
$fdf_document Pflicht resource Eine FDF-Dokumentressource, die zuvor mit fdf_create() oder fdf_open() geöffnet wurde.
$fieldname Pflicht string Der vollständige Name des Formularfeldes im FDF-Dokument, dessen Flags verändert werden sollen.
$whichFlags Pflicht int Eine Bit-Maske, die festlegt, welche Flags-Bits überhaupt verändert werden dürfen. Nur die gesetzten Bits dieser Maske werden berücksichtigt.
$newFlags Pflicht int Die neuen Werte für die durch whichFlags ausgewählten Bits. Bits, die in whichFlags nicht gesetzt sind, werden ignoriert.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false im Fehlerfall (z. B. wenn das Feld nicht gefunden wurde oder das FDF-Dokument ungültig ist).

Beispiele

Feld als schreibgeschützt markieren

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

// Feldwert setzen
fdf_set_value($fdf, 'Vorname', 'Max Mustermann', 0);

// Flag-Konstante für 'ReadOnly' ist typischerweise 1
// whichFlags = 1 (ReadOnly-Bit auswählen)
// newFlags   = 1 (ReadOnly-Bit setzen)
$result = fdf_set_flags($fdf, 'Vorname', 1, 1);

if ($result) {
    echo "Flag erfolgreich gesetzt.";
} else {
    echo "Fehler beim Setzen des Flags.";
}

// FDF-Ausgabe senden
header('Content-Type: application/vnd.fdf');
fdf_save($fdf);
fdf_close($fdf);
Flag erfolgreich gesetzt.

ReadOnly-Flag eines Feldes zurücksetzen

<?php
// Vorhandenes FDF-Dokument öffnen
$fdf = fdf_open('formular.fdf');

if ($fdf) {
    // whichFlags = 1 (ReadOnly-Bit auswählen)
    // newFlags   = 0 (ReadOnly-Bit löschen / deaktivieren)
    $result = fdf_set_flags($fdf, 'Nachname', 1, 0);

    if ($result) {
        echo "ReadOnly-Flag wurde entfernt.";
    } else {
        echo "Fehler: Flag konnte nicht entfernt werden.";
    }

    fdf_save($fdf, 'formular_aktualisiert.fdf');
    fdf_close($fdf);
} else {
    echo "FDF-Dokument konnte nicht geöffnet werden.";
}
ReadOnly-Flag wurde entfernt.

// Wichtig · Fallstricke

Veraltet: Die FDF-Erweiterung ist seit langem nicht mehr aktiv gepflegt und steht in modernen PHP-Umgebungen häufig nicht zur Verfügung. Sie erfordert die Installation der externen Acrobat FDF Toolkit-Bibliothek von Adobe. Für neue Projekte sollten modernere Bibliotheken wie TCPDF, FPDI oder mPDF verwendet werden.

Die numerischen Werte der FDF-Feld-Flags entsprechen den in der PDF-Spezifikation (ISO 32000) definierten Bit-Feldern. Eine falsche Verwendung der Masken kann dazu führen, dass unbeabsichtigt andere Flags verändert werden. Die genaue Bedeutung der Bits ist der PDF-Referenz zu entnehmen.