Start · Sprachen · PHP · Referenz · ps_show

ps_show

Funktion

Gibt einen Textstring an der aktuellen Position im PostScript-Dokument aus.

Kategorie: misc

Signatur

ps_show(resource $psdoc, string $text): bool

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

Typ
bool
Beschreibung
Gibt 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.';
?>
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.';
?>
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.