Signatur
Beschreibung
ps_get_value() gehört zur PS-Erweiterung (pslib) für PHP und ermöglicht das Abfragen interner numerischer Parameter eines PostScript-Dokuments. Über den Parameter name wird der gewünschte Wert identifiziert, während modifier bei bestimmten Werten als Zusatzindex fungiert (z. B. um einen konkreten Font oder ein spezifisches Bild zu adressieren).
Typische abfragbare Werte sind z. B. "fontsize" (aktuelle Schriftgröße), "imagewidth" / "imageheight" (Abmessungen eines geladenen Bildes), "textx" / "texty" (aktuelle Textposition) oder "major" / "minor" (Versionsnummern der pslib-Bibliothek). Die Funktion ist das numerische Gegenstück zu ps_get_parameter(), welches String-Werte liefert.
Die Funktion ist sinnvoll, wenn nach dem Setzen von Eigenschaften geprüft werden soll, ob diese korrekt übernommen wurden, oder wenn berechnungsabhängige Layouts auf tatsächlichen Dokumentwerten basieren sollen (z. B. Zeilenabstände anhand der aktuellen Schriftgröße ermitteln).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Eine gültige PostScript-Dokumentressource, die zuvor mit ps_new() erzeugt wurde. |
|
| $name Pflicht | string | Name des abzufragenden Wertes, z. B. "fontsize", "imagewidth", "imageheight", "textx", "texty", "major" oder "minor". |
|
| $modifier Pflicht | float | Optionaler Zusatzindex, der für bestimmte Werte benötigt wird (z. B. ein Font-Handle oder ein Bild-Handle). Wenn kein Modifier benötigt wird, kann 0.0 übergeben werden. |
Rückgabewert
float zurück. Bei einem ungültigen name oder einem ungültigen Dokumenthandle wird 0.0 zurückgegeben.Beispiele
Aktuelle Schriftgröße auslesen
<?php
$ps = ps_new();
if (!$ps) {
die('Fehler beim Erstellen des PS-Dokuments');
}
ps_open_file($ps, 'dokument.ps');
ps_begin_page($ps, 596, 842);
// Font laden und Größe setzen
$font = ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, $font, 14.0);
// Aktuelle Schriftgröße abfragen
$size = ps_get_value($ps, 'fontsize', 0.0);
echo 'Aktuelle Schriftgröße: ' . $size . ' pt';
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
?>
Bildabmessungen nach dem Laden abfragen
<?php
$ps = ps_new();
ps_open_file($ps, 'ausgabe.ps');
ps_begin_page($ps, 596, 842);
// Bild laden
$image = ps_open_image_file($ps, 'png', 'foto.png', '', 0);
if ($image > 0) {
// Breite und Höhe des Bildes abfragen
$breite = ps_get_value($ps, 'imagewidth', $image);
$hoehe = ps_get_value($ps, 'imageheight', $image);
echo "Bildgröße: {$breite} x {$hoehe} Pixel\n";
// Bild auf der Seite platzieren
ps_place_image($ps, $image, 50, 700, 1.0);
ps_close_image($ps, $image);
}
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
?>
// Wichtig · Fallstricke
Erweiterungsverfügbarkeit: Die ps_*-Funktionen erfordern die PECL-Erweiterung ps, die auf vielen Standardinstallationen nicht verfügbar ist. Sie muss separat installiert und in der php.ini aktiviert werden (extension=ps.so).
Ab PHP 8.0 sind pslib-Ressourcen in der Regel nicht mehr als klassische resource-Typen verfügbar; die Erweiterung wird seit Jahren kaum noch gepflegt. Für neue Projekte empfiehlt sich der Einsatz modernerer Bibliotheken wie FPDF, TCPDF oder mPDF zur PDF-Erzeugung.
Der Parameter modifier muss stets übergeben werden; bei Werten, die keinen Modifier benötigen, ist 0.0 zu übergeben, da PHP keine optionalen Parameter für diese Funktion definiert.