Signatur
Beschreibung
ps_add_weblink() ist Teil der ps-Erweiterung (pslib) für PHP und ermöglicht es, in einem PostScript-Dokument einen rechteckigen Bereich als anklickbaren Weblink zu definieren. Der Link verweist auf eine externe URL und ist vor allem dann nützlich, wenn das PostScript-Dokument in ein PDF konvertiert wird, da dann interaktive Hyperlinks unterstützt werden.
Die Position des Linkbereichs wird über zwei Eckpunkte eines Rechtecks angegeben: die untere linke Ecke (llx, lly) und die obere rechte Ecke (urx, ury). Alle Koordinaten werden in der aktuellen Maßeinheit des Dokuments (standardmäßig Punkte) angegeben.
Typischerweise wird ps_add_weblink() verwendet, nachdem Text oder eine Grafik auf der Seite platziert wurde, um den entsprechenden Bereich als anklickbaren Link zu markieren. Der Linkbereich ist im reinen PostScript-Output nicht direkt sichtbar, wird aber beim Konvertieren zu PDF als interaktiver Link eingebettet.
- Muss innerhalb einer geöffneten Seite (zwischen
ps_begin_page()undps_end_page()) aufgerufen werden. - Die URL muss vollständig und gültig sein, z. B.
https://example.com.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, wie sie von ps_new() zurückgegeben wird. |
|
| $llx Pflicht | float | Die x-Koordinate der unteren linken Ecke des Linkbereichs in der aktuellen Maßeinheit. | |
| $lly Pflicht | float | Die y-Koordinate der unteren linken Ecke des Linkbereichs in der aktuellen Maßeinheit. | |
| $urx Pflicht | float | Die x-Koordinate der oberen rechten Ecke des Linkbereichs in der aktuellen Maßeinheit. | |
| $ury Pflicht | float | Die y-Koordinate der oberen rechten Ecke des Linkbereichs in der aktuellen Maßeinheit. | |
| $url Pflicht | string | Die vollständige URL, auf die der Link zeigen soll, z. B. https://programmierung.net. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. wenn kein gültiges Dokument-Handle übergeben wurde oder kein Seitenkontext aktiv ist).Beispiele
Einfacher Weblink auf einer PostScript-Seite
<?php
// Neues PostScript-Dokument erstellen
$ps = ps_new();
if (!$ps) {
die('Konnte PostScript-Ressource nicht erstellen.');
}
// Dokument öffnen und in Datei schreiben
ps_open_file($ps, '/tmp/weblink_beispiel.ps');
// Dokumentinformationen setzen
ps_set_info($ps, 'Creator', 'PHP ps_add_weblink Beispiel');
ps_set_info($ps, 'Author', 'Programmierung.net');
ps_set_info($ps, 'Title', 'Weblink Beispiel');
// Neue Seite beginnen (DIN A4: 595 x 842 Punkte)
ps_begin_page($ps, 595, 842);
// Schriftart laden und setzen
$font = ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, $font, 14.0);
// Text ausgeben, der als Link erscheinen soll
ps_show_xy($ps, 'Besuchen Sie programmierung.net!', 50, 780);
// Weblink über den Text-Bereich legen
// Koordinaten entsprechen dem Textbereich
ps_add_weblink($ps, 50, 775, 350, 800, 'https://programmierung.net');
// Seite beenden
ps_end_page($ps);
// Dokument schließen und Ressource freigeben
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei mit Weblink erfolgreich erstellt.';
?>
Mehrere Weblinks auf einer Seite
<?php
$ps = ps_new();
ps_open_file($ps, '/tmp/mehrere_links.ps');
ps_set_info($ps, 'Title', 'Mehrere Weblinks');
ps_begin_page($ps, 595, 842);
$font = ps_findfont($ps, 'Helvetica', '', 0);
ps_setfont($ps, $font, 12.0);
// Link-Daten: [Anzeigetext, URL, y-Position]
$links = [
['Google', 'https://www.google.com', 750],
['PHP-Handbuch', 'https://www.php.net/manual/de/', 720],
['Beispielseite','https://example.com', 690],
];
foreach ($links as [$label, $url, $y]) {
ps_show_xy($ps, $label, 50, $y);
// Linkfläche über den Text legen (ca. 200pt breit, 18pt hoch)
ps_add_weblink($ps, 50, $y - 3, 250, $y + 15, $url);
}
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei mit mehreren Weblinks erstellt.';
?>
// Wichtig · Fallstricke
Verfügbarkeit: ps_add_weblink() erfordert die ps-PECL-Erweiterung, die pslib als Systembibliothek voraussetzt. Sie ist nicht standardmäßig in PHP enthalten und muss separat installiert werden.
Interaktivität nur in PDF: PostScript selbst unterstützt keine interaktiven Hyperlinks im eigentlichen Sinne. Die Weblinks werden als spezielle Annotationen eingebettet und entfalten ihre Wirkung erst, wenn das .ps-Dokument beispielsweise mit ps2pdf in ein PDF konvertiert wird.
Koordinatensystem: Das PostScript-Koordinatensystem hat seinen Ursprung (0,0) standardmäßig in der unteren linken Ecke der Seite, die y-Achse zeigt nach oben. Dies unterscheidet sich von vielen anderen Grafiksystemen.
URL-Validierung: Die Funktion prüft die übergebene URL nicht auf Gültigkeit. Es liegt in der Verantwortung des Entwicklers, korrekte und vollständige URLs zu übergeben.