Signatur
Beschreibung
ps_stroke() ist Teil der PS-Erweiterung (pslib) für PHP und wird verwendet, um den aktuell definierten Pfad in einem PostScript-Dokument sichtbar zu machen, indem er mit der aktuell gesetzten Linienfarbe und Linienbreite gezeichnet wird. Nach dem Zeichnen wird der Pfad automatisch aus dem Grafikzustand entfernt.
Im Gegensatz zu ps_fill(), das einen Pfad füllt, bewirkt ps_stroke() nur das Umranden (Stroken) des Pfades. Es ist möglich, mit ps_fill_stroke() beide Operationen in einem Schritt durchzuführen. Typische Anwendungsfälle sind das Zeichnen von Linien, Rechtecken, Kreisen oder beliebigen Kurven in PostScript-Dokumenten.
Vor dem Aufruf von ps_stroke() sollten Pfadelemente wie ps_moveto(), ps_lineto(), ps_curveto() oder ps_arc() sowie ggf. Linienstil-Einstellungen (Farbe via ps_setcolor(), Breite via ps_setlinewidth()) gesetzt worden sein.
Die Funktion gehört zur ps-Extension, die in PHP nicht standardmäßig verfügbar ist und separat als PECL-Paket installiert werden muss.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, die mit ps_new() erstellt und mit ps_open_file() geöffnet wurde. |
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall (z. B. wenn keine gültige Dokumentressource übergeben wurde oder kein offener Pfad vorhanden ist).Beispiele
Einfache Linie in einem PostScript-Dokument zeichnen
<?php
// PostScript-Dokument erstellen
$ps = ps_new();
if (!ps_open_file($ps, '/tmp/beispiel.ps')) {
die('Konnte Datei nicht öffnen');
}
ps_set_info($ps, 'Creator', 'PHP ps_stroke Beispiel');
ps_begin_page($ps, 595, 842); // DIN A4 in Punkten
// Linienfarbe auf Schwarz setzen
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 0.0, 0.0);
// Linienbreite setzen
ps_setlinewidth($ps, 2.0);
// Pfad definieren: Linie von (50, 700) nach (400, 700)
ps_moveto($ps, 50, 700);
ps_lineto($ps, 400, 700);
// Pfad als Linie zeichnen
ps_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Dokument wurde erfolgreich erstellt.';
?>
Rechteck-Umriss mit ps_stroke zeichnen
<?php
$ps = ps_new();
ps_open_file($ps, '/tmp/rechteck.ps');
ps_set_info($ps, 'Creator', 'Rechteck-Beispiel');
ps_begin_page($ps, 595, 842);
// Blaue Linie, 3 Punkte breit
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 1.0, 0.0);
ps_setlinewidth($ps, 3.0);
// Rechteck-Pfad definieren
ps_moveto($ps, 100, 600);
ps_lineto($ps, 300, 600);
ps_lineto($ps, 300, 750);
ps_lineto($ps, 100, 750);
ps_closepath($ps); // Pfad schließen (zurück zum Startpunkt)
// Nur den Umriss zeichnen (nicht füllen)
ps_stroke($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Rechteck-Umriss wurde gezeichnet.';
?>
// Wichtig · Fallstricke
Hinweis zur Extension: Die ps-Erweiterung ist nicht Teil des PHP-Standardlieferumfangs. Sie muss über PECL installiert und in der php.ini aktiviert werden (extension=ps.so bzw. extension=php_ps.dll). Auf vielen Hosting-Umgebungen ist sie nicht verfügbar.
Pfad wird geleert: Nach dem Aufruf von ps_stroke() wird der aktuelle Pfad gelöscht. Soll derselbe Pfad sowohl gestroked als auch gefüllt werden, muss ps_fill_stroke() verwendet werden oder der Pfad muss erneut aufgebaut werden.
Grafikzustand: Linienstil-Eigenschaften (Farbe, Breite, Dash-Muster) sollten vor dem Definieren des Pfades gesetzt werden, da sie zum Zeitpunkt des ps_stroke()-Aufrufs gelten.