Signatur
Beschreibung
ps_set_info ermöglicht es, Metainformationen in ein PostScript-Dokument einzutragen. Typische Informationsfelder sind etwa Author, Title, Subject oder Keywords. Diese Informationen werden im DSC-Header (Document Structuring Conventions) des erzeugten PostScript-Dokuments abgelegt und können von PostScript-Viewern oder Druckern ausgewertet werden.
Die Funktion muss vor dem Aufruf von ps_begin_page aufgerufen werden, damit die Informationsfelder korrekt in den Dokumentkopf geschrieben werden. Ein nachträgliches Setzen nach dem ersten Seitenaufruf wird von manchen Implementierungen ignoriert.
Bekannte Schlüssel sind unter anderem: Author, Title, Subject, Keywords, Creator, Producer und BoundingBox. Nicht anerkannte Schlüssel können je nach Bibliotheksversion ignoriert werden.
- Author: Name des Autors des Dokuments
- Title: Titel des Dokuments
- Subject: Thema oder Betreff
- Keywords: Schlagwörter, durch Komma getrennt
- Creator: Anwendung, die das Dokument erstellt hat
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die PostScript-Dokument-Ressource, die zuvor mit ps_new erzeugt wurde. |
|
| $key Pflicht | string | Der Name des Informationsfeldes, z. B. Author, Title, Subject oder Keywords. |
|
| $value Pflicht | string | Der Wert, der dem angegebenen Informationsfeld zugewiesen werden soll. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. ungültige Ressource oder unbekannter Schlüssel).Beispiele
Grundlegende Dokument-Metadaten setzen
<?php
$ps = ps_new();
// Metainformationen vor dem ersten Seitenaufruf setzen
ps_set_info($ps, 'Author', 'Max Mustermann');
ps_set_info($ps, 'Title', 'Mein PostScript-Dokument');
ps_set_info($ps, 'Subject', 'Beispiel-Dokument für programmierung.net');
ps_set_info($ps, 'Keywords', 'PHP, PostScript, ps_set_info');
ps_set_info($ps, 'Creator', 'PHP ps-Erweiterung');
ps_open_file($ps, '/tmp/ausgabe.ps');
ps_begin_page($ps, 595, 842); // A4-Seite
// Einfachen Text auf die Seite schreiben
$font = ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, $font, 12.0);
ps_show_xy($ps, 'Hallo Welt!', 50, 780);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Dokument mit Metadaten erstellt.';
Mehrere Dokument-Informationsfelder in einer Schleife setzen
<?php
$ps = ps_new();
$metadaten = [
'Author' => 'Anna Beispiel',
'Title' => 'Technischer Bericht',
'Subject' => 'Auswertung 2024',
'Keywords' => 'Bericht, Auswertung, Statistik',
'Creator' => 'PHP 8 / ps-Erweiterung',
];
foreach ($metadaten as $key => $value) {
$result = ps_set_info($ps, $key, $value);
if (!$result) {
echo "Warnung: Informationsfeld '$key' konnte nicht gesetzt werden.\n";
}
}
ps_open_file($ps, '/tmp/bericht.ps');
ps_begin_page($ps, 595, 842);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Dokument mit Metadaten gespeichert.';
// Wichtig · Fallstricke
Reihenfolge beachten: ps_set_info muss vor dem ersten Aufruf von ps_begin_page verwendet werden, da die Metainformationen in den DSC-Header geschrieben werden, der beim Öffnen der ersten Seite abgeschlossen wird.
Erweiterung erforderlich: Diese Funktion gehört zur ps-PECL-Erweiterung (pslib), die separat installiert werden muss. Sie ist nicht Bestandteil der PHP-Standardinstallation. Überprüfen Sie mit extension_loaded('ps'), ob die Erweiterung verfügbar ist.
Unbekannte oder nicht unterstützte Schlüssel werden je nach pslib-Version möglicherweise stillschweigend ignoriert, ohne einen Fehler auszulösen. Testen Sie das Verhalten mit der in Ihrer Umgebung installierten Version.