Signatur
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
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);
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.";
}
// 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.