Signatur
Beschreibung
ps_show2 ist Teil der PS-Bibliothek (pslib) für PHP und gibt einen Text-String an der aktuellen Grafikposition im PostScript-Dokument aus. Im Gegensatz zu ps_show erlaubt ps_show2 die Angabe eines XForm-Objekts, mit dem Glyphen aus einem bestimmten Zeichensatz oder einer Kodierungsform gerendert werden können.
Die Funktion arbeitet mit dem internen Zustand des PostScript-Dokuments: Position, Schriftart und Schriftgröße müssen zuvor mit den entsprechenden Funktionen (ps_setfont, ps_moveto etc.) gesetzt worden sein. Der übergebene Text wird direkt in den PostScript-Ausgabestrom geschrieben.
Der Parameter xform gibt an, ob und welche XForm-Ressource für die Textdarstellung verwendet werden soll. Ein Wert von 0 entspricht in der Regel der Standarddarstellung ohne spezielle Transformation. Diese Funktion ist besonders nützlich, wenn man Zeichen aus verschiedenen Kodierungen oder Zeichensätzen innerhalb eines Dokuments mischen möchte.
Für einfache Anwendungsfälle ohne spezielle Kodierungsanforderungen ist ps_show ausreichend; ps_show2 bietet die zusätzliche Flexibilität für anspruchsvollere Typografie-Aufgaben in PostScript-Dokumenten.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die PostScript-Dokument-Ressource, wie sie von ps_new() zurückgegeben wird. |
|
| $text Pflicht | string | Der auszugebende Text-String. Die Kodierung muss mit der aktiven Schriftart und dem XForm-Parameter übereinstimmen. | |
| $xform Pflicht | int | Index des zu verwendenden XForm-Zeichensatzes bzw. der Kodierungsform. Der Wert 0 entspricht der Standarddarstellung. |
Rückgabewert
true bei Erfolg zurück, oder false wenn ein Fehler aufgetreten ist (z. B. kein aktives PostScript-Dokument oder keine gesetzte Schriftart).Beispiele
Einfache Textausgabe mit ps_show2
<?php
$ps = ps_new();
if (!$ps) {
die('Konnte kein PS-Dokument erstellen');
}
ps_open_file($ps, 'ausgabe.ps');
ps_begin_page($ps, 596, 842); // DIN A4
$schrift = ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, $schrift, 14.0);
ps_moveto($ps, 100, 700);
ps_show2($ps, 'Hallo PostScript!', 0);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei wurde erstellt.';
?>
Mehrere Textzeilen mit verschiedenen Positionen
<?php
$ps = ps_new();
ps_open_file($ps, 'mehrere_zeilen.ps');
ps_begin_page($ps, 596, 842);
$schrift = ps_findfont($ps, 'Times-Roman', '', 0);
ps_setfont($ps, $schrift, 12.0);
$zeilen = [
'Erste Zeile des Dokuments',
'Zweite Zeile des Dokuments',
'Dritte Zeile des Dokuments',
];
$y = 750;
foreach ($zeilen as $zeile) {
ps_moveto($ps, 80, $y);
ps_show2($ps, $zeile, 0);
$y -= 20; // Nächste Zeile 20 Punkte tiefer
}
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Mehrzeiliges Dokument erstellt.';
?>
// Wichtig · Fallstricke
Hinweis zur Erweiterung: ps_show2 gehört zur pslib-Erweiterung (ext/ps), die nicht standardmäßig in PHP enthalten ist und separat installiert bzw. kompiliert werden muss. Überprüfen Sie mit extension_loaded('ps'), ob die Erweiterung verfügbar ist.
Schriftart erforderlich: Vor dem Aufruf von ps_show2 muss zwingend eine Schriftart mit ps_setfont() gesetzt worden sein, andernfalls schlägt die Funktion fehl. Ebenso muss die aktuelle Zeichenposition mit ps_moveto() festgelegt werden.
Zeichenkodierung: Bei der Verwendung von Nicht-ASCII-Zeichen ist auf die korrekte Kodierung zu achten, da PostScript intern mit bestimmten Zeichensätzen arbeitet. Gegebenenfalls müssen Zeichen konvertiert werden, bevor sie an ps_show2 übergeben werden.