Start · Sprachen · PHP · Referenz · ps_set_value

ps_set_value

Funktion

Setzt einen numerischen Wert in einem PostScript-Dokument, der das Verhalten verschiedener Zeichenoperationen steuert.

Kategorie: misc

Signatur

ps_set_value(resource $psdoc, string $name, float $value): bool

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

Typ
bool
Beschreibung
Gibt 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.';
?>
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);
?>
Aktueller Zeilenabstand: 14 Punkte

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