Signatur
Beschreibung
ps_set_value() gehört zur ps-Erweiterung (pslib) und dient dazu, interne numerische Parameter eines PostScript-Dokuments zu setzen. Diese Parameter beeinflussen unter anderem Schriftgröße, Zeichenabstand, Zeilenabstand sowie andere typografische und Seitenparameter.
Der Wert wird über seinen Namen ($name) referenziert. Typische Parameternamen sind beispielsweise charspacing (Zeichenabstand), wordspacing (Wortabstand), leading (Zeilenabstand), textx und texty (aktuelle Textposition) oder font (aktuell aktiver Font-Handle).
Die Funktion ist eng mit ps_get_value() verwandt, mit der ein gesetzter Wert wieder ausgelesen werden kann. Beide Funktionen arbeiten ausschließlich mit numerischen Werten (float). Für Zeichenketten-basierte Parameter steht ps_set_parameter() zur Verfügung.
Die ps-Erweiterung ist ein optionales PECL-Paket und muss separat installiert und in der PHP-Konfiguration aktiviert sein. Sie eignet sich besonders für Anwendungen, die direkt PostScript-Dokumente erzeugen, ohne den Umweg über PDF zu nehmen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, die zuvor mit ps_new() erzeugt und mit ps_open_file() geöffnet wurde. |
|
| $name Pflicht | string | Name des zu setzenden Parameters, z. B. charspacing, wordspacing, leading, font, textx, texty oder textrendering. |
|
| $value Pflicht | float | Der numerische Wert, der dem Parameter zugewiesen werden soll. Die Einheit hängt vom jeweiligen Parameter ab (meist PostScript-Punkte). |
Rückgabewert
true zurück, wenn der Wert erfolgreich gesetzt wurde, andernfalls false.Beispiele
Zeichenabstand und Schriftgröße für ein PostScript-Dokument setzen
<?php
// Neues PostScript-Dokument anlegen
$ps = ps_new();
if (!ps_open_file($ps, '/tmp/ausgabe.ps')) {
die('Fehler beim Öffnen der Datei.');
}
ps_set_info($ps, 'Creator', 'Mein PHP-Script');
ps_begin_page($ps, 596, 842); // DIN A4
// Schrift laden und aktivieren
$font = ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, $font, 12.0);
// Zeichenabstand auf 1.5 Punkte setzen
ps_set_value($ps, 'charspacing', 1.5);
// Wortabstand auf 3 Punkte setzen
ps_set_value($ps, 'wordspacing', 3.0);
// Text an Position ausgeben
ps_show_xy($ps, 'Hallo Welt!', 100, 700);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Dokument erfolgreich erstellt.';
?>
Gesetzten Wert mit ps_get_value kontrollieren
<?php
$ps = ps_new();
ps_open_file($ps, '/tmp/test.ps');
ps_begin_page($ps, 596, 842);
// Zeilenabstand (leading) setzen
ps_set_value($ps, 'leading', 14.0);
// Wert wieder auslesen und prüfen
$leading = ps_get_value($ps, 'leading', 0);
echo 'Aktueller Zeilenabstand: ' . $leading . ' Punkte';
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
?>
// Wichtig · Fallstricke
Voraussetzung: Die ps-Erweiterung ist kein Bestandteil des PHP-Kernsystems. Sie muss über PECL installiert und in der php.ini mit extension=ps aktiviert werden. Ohne installiertes pslib wird die Erweiterung nicht kompiliert.
Abgrenzung: ps_set_value() verarbeitet ausschließlich numerische (float) Werte. Für das Setzen von Zeichenketten-Parametern (z. B. Kodierung, Sprache) ist ps_set_parameter() zu verwenden.
Gültigkeitsbereich: Die gesetzten Werte gelten ab dem Zeitpunkt des Aufrufs für alle nachfolgenden Zeichenoperationen innerhalb des Dokuments, bis sie erneut geändert werden.