Start · Sprachen · PHP · Referenz · ps_show2

ps_show2

Funktion

Gibt einen Text-String an der aktuellen Position im PostScript-Dokument aus und wendet optional eine XForm-Transformation an.

Kategorie: misc

Signatur

ps_show2(resource $psdoc, string $text, int $xform): bool

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

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