Signatur
Beschreibung
ps_rect() ist Teil der PS-Erweiterung (pslib) von PHP und zeichnet ein Rechteck in das aktuelle PostScript-Dokument. Das Rechteck wird durch seinen unteren linken Eckpunkt (x, y) sowie seine Breite (width) und Höhe (height) definiert.
Die Funktion fügt den Rechteckpfad zur aktuellen Pfadliste hinzu. Um das Rechteck sichtbar zu machen, muss es anschließend mit ps_stroke() (für Konturlinien) oder ps_fill() (für gefüllte Flächen) gerendert werden. Es kann auch ps_stroke_and_fill() verwendet werden, um beides in einem Schritt durchzuführen.
Das Koordinatensystem von PostScript beginnt standardmäßig unten links auf der Seite, wobei die Y-Achse nach oben zeigt. Alle Maße werden in PostScript-Punkten (pt) angegeben, wobei 1 Punkt = 1/72 Zoll entspricht.
ps_rect() eignet sich besonders für die Erstellung von Rahmenelementen, Tabellenstrukturen, Hintergrundrechtecken oder anderen geometrischen Formen in programmatisch erzeugten PDF- oder PS-Dokumenten.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, die durch ps_new() erzeugt wurde. |
|
| $x Pflicht | float | Die X-Koordinate der unteren linken Ecke des Rechtecks in PostScript-Punkten. | |
| $y Pflicht | float | Die Y-Koordinate der unteren linken Ecke des Rechtecks in PostScript-Punkten. | |
| $width Pflicht | float | Die Breite des Rechtecks in PostScript-Punkten. | |
| $height Pflicht | float | Die Höhe des Rechtecks in PostScript-Punkten. |
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall.Beispiele
Einfaches Rechteck mit Kontur zeichnen
<?php
// PostScript-Dokument erstellen
$ps = ps_new();
if (!ps_open_file($ps, '/tmp/rechteck.ps')) {
die('Konnte PostScript-Datei nicht öffnen.');
}
ps_set_info($ps, 'Creator', 'rechteck_beispiel.php');
ps_set_info($ps, 'Title', 'Rechteck-Beispiel');
// Seite beginnen (DIN A4: 595 x 842 Punkte)
ps_begin_page($ps, 595, 842);
// Linienfarbe auf Schwarz setzen
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 0.0, 0.0);
// Linienbreite auf 2 Punkte setzen
ps_setlinewidth($ps, 2.0);
// Rechteck bei x=100, y=400, Breite=200, Höhe=150 zeichnen
ps_rect($ps, 100, 400, 200, 150);
// Kontur rendern
ps_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei erfolgreich erstellt.';
?>
Gefülltes Rechteck mit Rahmen zeichnen
<?php
$ps = ps_new();
if (!ps_open_file($ps, '/tmp/gefuelltes_rechteck.ps')) {
die('Konnte PostScript-Datei nicht öffnen.');
}
ps_set_info($ps, 'Creator', 'gefuelltes_rechteck.php');
ps_set_info($ps, 'Title', 'Gefülltes Rechteck');
ps_begin_page($ps, 595, 842);
// Füllfarbe auf Hellblau setzen
ps_setcolor($ps, 'fill', 'rgb', 0.6, 0.8, 1.0, 0.0);
// Strichfarbe auf Dunkelblau setzen
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 0.6, 0.0);
ps_setlinewidth($ps, 3.0);
// Rechteck zeichnen
ps_rect($ps, 150, 300, 300, 200);
// Gleichzeitig füllen und Kontur zeichnen
ps_fill_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Gefülltes Rechteck erfolgreich erstellt.';
?>
// Wichtig · Fallstricke
Achtung: Die PS-Erweiterung (pslib) ist nicht standardmäßig in PHP enthalten und muss separat installiert werden. Seit PHP 8.0 ist die Erweiterung als veraltet zu betrachten und wird möglicherweise nicht mehr aktiv gepflegt.
Das PostScript-Koordinatensystem hat seinen Ursprung unten links auf der Seite — im Gegensatz zu vielen Grafiksystemen, die den Ursprung oben links verwenden. Dies muss beim Positionieren von Elementen berücksichtigt werden.
Ein Rechteckpfad wird erst durch expliziten Aufruf von ps_stroke(), ps_fill() oder ps_fill_stroke() sichtbar. Ohne diesen Schritt bleibt das Rechteck unsichtbar im Pfad-Puffer.