Signatur
Beschreibung
ps_add_launchlink() ist Teil der PS-Erweiterung (PHP-PostScript-Bibliothek) und ermöglicht es, in einem PostScript-Dokument einen sogenannten Launch-Link zu definieren. Ein solcher Link öffnet beim Anklicken – z. B. in einem PDF-Viewer – eine angegebene externe Datei und startet dabei ggf. die zugehörige Anwendung.
Der Link wird durch ein rechteckiges Gebiet definiert, das über zwei Koordinatenpaare angegeben wird: die linke untere Ecke (llx, lly) und die rechte obere Ecke (urx, ury). Das Koordinatensystem richtet sich nach der PostScript-Konvention (Ursprung unten links, Angaben in Punkt).
Der Parameter filename legt den Pfad der zu startenden Datei fest. Dies kann eine ausführbare Datei, ein Dokument oder eine andere Ressource sein, die das Betriebssystem des Betrachters öffnen kann. Die Funktion eignet sich beispielsweise für interaktive Präsentationen, die auf ergänzende Materialien verweisen.
Diese Funktion ist nur verfügbar, wenn die PS-Erweiterung installiert und aktiviert ist. Sie wird typischerweise in Kombination mit anderen ps_*-Funktionen wie ps_begin_page() und ps_end_page() verwendet.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, die zuvor mit ps_new() erzeugt wurde. |
|
| $llx Pflicht | float | X-Koordinate der linken unteren Ecke des Link-Rechtecks in Punkt (PostScript-Koordinatensystem, Ursprung unten links). | |
| $lly Pflicht | float | Y-Koordinate der linken unteren Ecke des Link-Rechtecks in Punkt. | |
| $urx Pflicht | float | X-Koordinate der rechten oberen Ecke des Link-Rechtecks in Punkt. | |
| $ury Pflicht | float | Y-Koordinate der rechten oberen Ecke des Link-Rechtecks in Punkt. | |
| $filename Pflicht | string | Pfad oder Name der Datei, die gestartet werden soll, wenn der Betrachter auf den Link klickt. Der Pfad wird für das Zielsystem (Betrachter) interpretiert. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. ungültige Ressource oder nicht geöffnetes Dokument).Beispiele
Launch-Link auf einer PostScript-Seite einfügen
<?php
// Neues PostScript-Dokument erzeugen
$ps = ps_new();
if (!ps_open_file($ps, '/tmp/ausgabe.ps')) {
die('Datei konnte nicht geöffnet werden.');
}
ps_set_info($ps, 'Creator', 'Beispielskript');
ps_set_info($ps, 'Title', 'Launch-Link Demo');
// Seite beginnen (A4: 595 x 842 Punkte)
ps_begin_page($ps, 595, 842);
// Text als Platzhalter auf der Seite ausgeben
ps_set_font($ps, 'Helvetica', 14, 0);
ps_show_xy($ps, 'Klicke hier, um die Datei zu oeffnen', 50, 750);
// Launch-Link über dem Text hinzufügen
// Rechteck: linke untere Ecke (50, 745), rechte obere Ecke (400, 765)
ps_add_launchlink($ps, 50, 745, 400, 765, '/pfad/zur/datei.pdf');
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Dokument mit Launch-Link wurde erstellt.';
?>
Launch-Link auf eine ausführbare Datei setzen
<?php
$ps = ps_new();
if (!ps_open_file($ps, '/tmp/launcher.ps')) {
die('Fehler beim Erstellen der Datei.');
}
ps_begin_page($ps, 595, 842);
// Klickbare Fläche definieren, die ein Programm startet
ps_add_launchlink($ps, 100, 600, 300, 630, 'C:\\Windows\\notepad.exe');
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Fertig.';
?>
// Wichtig · Fallstricke
Sicherheitshinweis: Da ps_add_launchlink() eine beliebige Datei auf dem System des Betrachters starten kann, sollte der filename-Parameter niemals direkt aus einer Benutzereingabe übernommen werden. Ein nicht bereinigter Dateiname könnte dazu missbraucht werden, Schadsoftware oder unerwünschte Programme auszuführen (Remote-Code-Execution-Risiko beim Betrachter).
Die PS-Erweiterung ist in modernen PHP-Umgebungen selten vorinstalliert und muss explizit kompiliert bzw. aktiviert werden. Prüfe mit extension_loaded('ps'), ob sie verfügbar ist.
Das Verhalten von Launch-Links hängt stark vom verwendeten Viewer und dessen Sicherheitseinstellungen ab – viele moderne PDF-/PS-Viewer blockieren solche Links standardmäßig oder zeigen eine Sicherheitswarnung an.