Signatur
Beschreibung
ps_show ist Teil der PHP-PostScript-Erweiterung (ps) und gibt den übergebenen Text an der aktuellen Zeichenposition im PostScript-Dokument aus. Die Funktion nutzt die zuvor gesetzte Schriftart und Schriftgröße, die mit ps_setfont und ps_setfontsize (bzw. innerhalb von ps_setfont mit Größenangabe) festgelegt wurden.
Die aktuelle Position wird dabei nach der Ausgabe automatisch um die Breite des ausgegebenen Textes verschoben, sodass ein nachfolgendes ps_show nahtlos anschließend Text ausgeben kann. Die Startposition lässt sich mit ps_moveto festlegen.
Diese Funktion eignet sich für einfache Textausgaben an einer bestimmten Stelle auf einer PostScript-Seite, z. B. für Beschriftungen, Überschriften oder Fließtextblöcke. Für mehrzeiligen Text oder komplexere Layoutanforderungen sind ergänzende Funktionen wie ps_show_xy oder ps_show_boxed besser geeignet.
Voraussetzung für die korrekte Darstellung ist, dass zuvor eine gültige Schrift geladen und gesetzt wurde sowie eine Seite mit ps_begin_page geöffnet ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, die mit ps_new erzeugt und mit ps_open_file geöffnet wurde. |
|
| $text Pflicht | string | Der auszugebende Textstring. Die Kodierung muss zur geladenen Schriftart passen (häufig Latin-1). |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. wenn kein gültiges Dokument übergeben wurde oder keine Schrift gesetzt ist).Beispiele
Einfache Textausgabe in einem PostScript-Dokument
<?php
$ps = ps_new();
if (!ps_open_file($ps, '/tmp/ausgabe.ps')) {
die('Fehler beim Öffnen der PS-Datei');
}
ps_begin_page($ps, 596, 842); // DIN A4 in Punkt
// Schrift laden und setzen
$font = ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, $font, 14.0);
// Textfarbe auf Schwarz setzen
ps_setcolor($ps, 'fill', 'rgb', 0.0, 0.0, 0.0, 0.0);
// Position setzen und Text ausgeben
ps_moveto($ps, 100, 700);
ps_show($ps, 'Hallo, Welt!');
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei wurde erstellt.';
?>
Mehrere Textelemente nacheinander ausgeben
<?php
$ps = ps_new();
ps_open_file($ps, '/tmp/mehrtext.ps');
ps_begin_page($ps, 596, 842);
$font = ps_findfont($ps, 'Times-Roman', '', 0);
ps_setfont($ps, $font, 12.0);
ps_setcolor($ps, 'fill', 'rgb', 0.0, 0.0, 0.0, 0.0);
// Erste Zeile
ps_moveto($ps, 80, 750);
ps_show($ps, 'Name: ');
// Nahtlose Fortsetzung ohne erneutes moveto
ps_show($ps, 'Max Mustermann');
// Zweite Zeile
ps_moveto($ps, 80, 730);
ps_show($ps, 'Datum: 01.01.2025');
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Fertig.';
?>
// Wichtig · Fallstricke
Zeichenkodierung: PostScript-Schriften erwarten in der Regel Latin-1-kodierte Strings. UTF-8-Text muss vor der Übergabe an ps_show konvertiert werden (z. B. mit utf8_decode oder iconv), da UTF-8-Multibyte-Sequenzen sonst zu falschen oder unlesbaren Zeichen führen.
Schrift muss gesetzt sein: Wird ps_show aufgerufen, ohne zuvor eine Schrift per ps_setfont zu setzen, schlägt die Ausgabe fehl. Ebenso muss eine Seite mit ps_begin_page aktiv sein.
Erweiterung: Die ps-Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat installiert werden (PECL-Paket ps). Sie ist auf Systemen mit der Bibliothek pslib abhängig.