Start · Sprachen · PHP · Referenz · ps_show_xy

ps_show_xy

Funktion

Gibt einen Text an der angegebenen absoluten Position im PostScript-Dokument aus.

Kategorie: misc

Signatur

ps_show_xy(resource $psdoc, string $text, float $x, float $y): bool

Beschreibung

ps_show_xy() schreibt den übergebenen Text an eine explizit angegebene Position im aktuellen PostScript-Dokument. Im Gegensatz zu ps_show(), das an der aktuellen Cursor-Position schreibt, setzt diese Funktion den Text direkt an die Koordinaten x und y — ohne die aktuelle Position zuvor mit ps_moveto() setzen zu müssen.

Die Koordinaten beziehen sich auf das Standard-PostScript-Koordinatensystem, bei dem der Ursprung (0, 0) sich in der unteren linken Ecke der Seite befindet und die y-Achse nach oben zeigt. Die Einheit ist in der Regel Punkt (1/72 Zoll).

Vor dem Aufruf muss eine gültige Schriftart mit ps_setfont() gesetzt worden sein, da sonst kein Text gerendert werden kann. Die Funktion eignet sich besonders für die präzise Platzierung von Beschriftungen, Titeln oder Formularfeldinhalten an fixen Positionen auf der Seite.

Nach dem Aufruf wird die aktuelle Textposition auf das Ende des ausgegebenen Textes gesetzt, sodass ein anschließendes ps_show() nahtlos weiterschreiben würde.

Parameter

Name Typ Default Beschreibung
$psdoc Pflicht resource Eine gültige PostScript-Ressource, die zuvor mit ps_new() erzeugt wurde.
$text Pflicht string Der auszugebende Text. Die Kodierung muss mit der Kodierung der gewählten Schriftart übereinstimmen.
$x Pflicht float Die horizontale Position (x-Koordinate) in PostScript-Punkten, gemessen vom linken Seitenrand.
$y Pflicht float Die vertikale Position (y-Koordinate) in PostScript-Punkten, gemessen vom unteren Seitenrand.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false im Fehlerfall (z. B. wenn keine Schriftart gesetzt wurde oder die Ressource ungültig ist).

Beispiele

Einfacher Text an einer fixen Position

<?php
$ps = ps_new();

if (!$ps) {
    die('PostScript-Ressource konnte nicht erstellt werden.');
}

ps_open_file($ps, 'ausgabe.ps');
ps_begin_page($ps, 595, 842); // DIN A4 in Punkten

// Schriftart laden und setzen
$font = ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, $font, 14.0);

// Text an Position x=100, y=700 ausgeben
ps_show_xy($ps, 'Hallo, Welt!', 100.0, 700.0);

ps_end_page($ps);
ps_close($ps);
ps_delete($ps);

echo 'PostScript-Datei wurde erfolgreich erstellt.';
?>
PostScript-Datei wurde erfolgreich erstellt.

Mehrere Textelemente an verschiedenen Positionen platzieren

<?php
$ps = ps_new();
ps_open_file($ps, 'rechnung.ps');
ps_begin_page($ps, 595, 842);

$font = ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, $font, 12.0);

// Kopfzeile
ps_show_xy($ps, 'Rechnung Nr. 2024-001', 50.0, 780.0);

// Kundenadresse
ps_show_xy($ps, 'Max Mustermann',        50.0, 720.0);
ps_show_xy($ps, 'Musterstraße 1',         50.0, 705.0);
ps_show_xy($ps, '12345 Musterstadt',      50.0, 690.0);

// Betrag rechtsbündig ausgerichtet
ps_show_xy($ps, 'Gesamtbetrag: 199,00 EUR', 350.0, 200.0);

ps_end_page($ps);
ps_close($ps);
ps_delete($ps);

echo 'Rechnung als PostScript gespeichert.';
?>
Rechnung als PostScript gespeichert.

// Wichtig · Fallstricke

Schriftart erforderlich: Ohne vorherigen Aufruf von ps_setfont() schlägt die Funktion fehl. Stellen Sie sicher, dass Schriftart und Schriftgröße korrekt gesetzt sind, bevor Text ausgegeben wird.

Koordinatensystem: Das PostScript-Koordinatensystem hat seinen Ursprung unten links — dies ist das Gegenteil zu vielen anderen Grafiksystemen (z. B. HTML/CSS), bei denen der Ursprung oben links liegt. Bei der Positionierung muss dies berücksichtigt werden.

Zeichenkodierung: Sonderzeichen und Umlaute (z. B. ä, ö, ü) müssen ggf. in die PostScript-konforme Kodierung konvertiert werden. Andernfalls erscheinen sie nicht korrekt im Dokument.

Die ps_-Funktionen sind Teil der ps-PECL-Erweiterung, die separat installiert werden muss und in vielen Standardinstallationen nicht enthalten ist.