Start · Sprachen · PHP · Referenz · ps_show_xy2

ps_show_xy2

Funktion

Gibt einen Text mit einer definierten Zeichenlänge an einer bestimmten Position im PostScript-Dokument aus.

Kategorie: misc

Signatur

ps_show_xy2(resource $psdoc, string $text, int $len, float $x, float $y): bool

Beschreibung

ps_show_xy2 ist Teil der PS-Erweiterung (pslib) für PHP und ermöglicht es, einen Textstring an einer exakt angegebenen Position (X/Y-Koordinaten) im PostScript-Dokument auszugeben. Im Gegensatz zu ps_show_xy erlaubt diese Funktion zusätzlich die Angabe der Anzahl der auszugebenden Zeichen (len), sodass auch Teilstrings eines längeren Strings ohne vorheriges Kürzen des Strings ausgegeben werden können.

Die Koordinaten x und y beziehen sich auf das PostScript-Koordinatensystem, dessen Ursprung sich standardmäßig in der linken unteren Ecke der Seite befindet. Die aktuelle Schrift, Schriftgröße und alle anderen Texteigenschaften müssen zuvor über entsprechende ps_*-Funktionen gesetzt worden sein.

Diese Funktion ist besonders nützlich, wenn nur ein Teil eines längeren Strings ausgegeben werden soll, etwa bei der Textverarbeitung in Schleifen, beim Umbrechen von Zeilen oder beim Rendern von Textblöcken in PDF/PS-Ausgaben.

Zu beachten ist, dass die PS-Erweiterung in aktuellen PHP-Versionen nicht standardmäßig enthalten ist und die pslib-Bibliothek separat installiert werden muss.

Parameter

Name Typ Default Beschreibung
$psdoc Pflicht resource Die Ressource des PostScript-Dokuments, die zuvor mit ps_new() erstellt und mit ps_open_file() geöffnet wurde.
$text Pflicht string Der auszugebende Textstring. Es wird nur der durch len begrenzte Anteil ausgegeben.
$len Pflicht int Die Anzahl der Zeichen aus text, die ausgegeben werden sollen. So können Teilstrings ohne vorheriges Kürzen des Originalstrings ausgegeben werden.
$x Pflicht float Die X-Koordinate (horizontale Position) im PostScript-Koordinatensystem, gemessen in Punkten (pt) ab dem linken Seitenrand.
$y Pflicht float Die Y-Koordinate (vertikale Position) im PostScript-Koordinatensystem, gemessen in Punkten (pt) ab dem unteren Seitenrand.

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

Text an einer bestimmten Position im PostScript-Dokument ausgeben

<?php
// PostScript-Dokument erstellen
$ps = ps_new();
ps_open_file($ps, 'ausgabe.ps');
ps_begin_page($ps, 596, 842); // A4-Seite in Punkten

// Schrift setzen
$schrift = ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, $schrift, 14.0);

$text = 'Hallo Welt und mehr Text';
$laenge = 11; // Nur 'Hallo Welt ' ausgeben

// Text an Position x=100, y=700 ausgeben (nur die ersten 11 Zeichen)
ps_show_xy2($ps, $text, $laenge, 100.0, 700.0);

ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo "PostScript-Datei erfolgreich erstellt.\n";
?>
PostScript-Datei erfolgreich erstellt.

Textblock zeilenweise ausgeben mit ps_show_xy2

<?php
$ps = ps_new();
ps_open_file($ps, 'textblock.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 mit etwas mehr Inhalt',
    'Dritte und letzte Zeile',
];

$yPosition = 750.0;
foreach ($zeilen as $zeile) {
    // Nur die ersten 20 Zeichen jeder Zeile ausgeben
    ps_show_xy2($ps, $zeile, 20, 80.0, $yPosition);
    $yPosition -= 20.0; // Nächste Zeile weiter unten
}

ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo "Textblock ausgegeben.\n";
?>
Textblock ausgegeben.

// Wichtig · Fallstricke

Hinweis zur Verfügbarkeit: Die PS-Erweiterung ist nicht im Standard-PHP-Paket enthalten. Sie setzt die Installation der pslib-Bibliothek sowie die Kompilierung von PHP mit der --with-ps-Option voraus. Auf vielen Hosting-Umgebungen steht diese Erweiterung nicht zur Verfügung.

Koordinatensystem: Das PostScript-Koordinatensystem hat seinen Ursprung unten links – Y-Koordinaten wachsen nach oben, was dem gewohnten Bildschirm-Koordinatensystem entgegengesetzt ist. Dies kann bei der Positionierung von Text leicht zu Verwirrung führen.

Schrift muss gesetzt sein: Vor dem Aufruf von ps_show_xy2 muss zwingend eine Schrift mit ps_setfont() gesetzt werden, sonst schlägt die Funktion fehl.