Start · Sprachen · PHP · Referenz · ps_add_locallink

ps_add_locallink

Funktion

Fügt einen anklickbaren Link zu einer anderen Seite innerhalb desselben PostScript-Dokuments hinzu.

Kategorie: misc

Signatur

ps_add_locallink(resource $psdoc, float $llx, float $lly, float $urx, float $ury, int $page, string $dest): bool

Beschreibung

ps_add_locallink ist Teil der PS-Bibliothek (pslib) für PHP und ermöglicht es, rechteckige Linkbereiche in einem PostScript-Dokument zu definieren, die beim Klicken zu einer anderen Seite desselben Dokuments navigieren. Das ist vor allem nützlich beim Erstellen interaktiver PDF-ähnlicher Dokumente, z. B. Inhaltsverzeichnisse oder Querverweise.

Das Linkrechteck wird durch zwei Koordinatenpaare definiert: die untere linke Ecke (llx, lly) und die obere rechte Ecke (urx, ury). Diese Angaben erfolgen im aktuellen Koordinatensystem des PostScript-Dokuments.

Der Parameter page gibt die Zielseitenummer an, zu der der Link führen soll, und dest definiert, wie die Zielseite dargestellt wird (z. B. fitpage, fitwidth oder fitheight). Diese Funktion ist besonders dann sinnvoll, wenn man mit ps_begin_page und ps_end_page mehrseitige Dokumente erzeugt.

Hinweis: Die PS-Erweiterung ist in modernen PHP-Versionen nicht standardmäßig enthalten und muss separat installiert werden (PECL-Paket ps).

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 PostScript-Punkten.
$lly Pflicht float Die Y-Koordinate der unteren linken Ecke des Linkbereichs in PostScript-Punkten.
$urx Pflicht float Die X-Koordinate der oberen rechten Ecke des Linkbereichs in PostScript-Punkten.
$ury Pflicht float Die Y-Koordinate der oberen rechten Ecke des Linkbereichs in PostScript-Punkten.
$page Pflicht int Die Seitennummer im Dokument, zu der der Link führen soll. Die Nummerierung beginnt bei 1.
$dest Pflicht string Gibt an, wie die Zielseite angezeigt werden soll. Mögliche Werte sind fitpage, fitwidth, fitheight und fitbbox.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, andernfalls false.

Beispiele

Einfacher interner Link auf Seite 2 des Dokuments

<?php
// PostScript-Dokument erstellen
$ps = ps_new();
ps_open_file($ps, 'dokument.ps');
ps_set_info($ps, 'Creator', 'MeinScript');

// Erste Seite beginnen
ps_begin_page($ps, 595, 842); // A4-Format

// Schrift setzen und Text ausgeben
ps_set_font($ps, ps_findfont($ps, 'Helvetica', '', 0), 14.0);
ps_show_xy($ps, 'Klicken Sie hier fuer Seite 2', 100, 700);

// Klickbaren Linkbereich definieren, der zu Seite 2 fuehrt
ps_add_locallink($ps, 100, 695, 400, 715, 2, 'fitpage');

ps_end_page($ps);

// Zweite Seite beginnen
ps_begin_page($ps, 595, 842);
ps_show_xy($ps, 'Willkommen auf Seite 2!', 100, 700);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);

echo 'Dokument mit internem Link erstellt.';
?>
Dokument mit internem Link erstellt.

Inhaltsverzeichnis mit mehreren internen Links

<?php
$ps = ps_new();
ps_open_file($ps, 'inhaltsverzeichnis.ps');
ps_set_info($ps, 'Creator', 'TOC-Generator');

// Seite 1: Inhaltsverzeichnis
ps_begin_page($ps, 595, 842);
$font = ps_findfont($ps, 'Helvetica', '', 0);
ps_set_font($ps, $font, 14.0);

$eintraege = [
    1 => ['Einleitung', 750, 2],
    2 => ['Hauptteil',  720, 3],
    3 => ['Fazit',      690, 4],
];

foreach ($eintraege as $nr => $eintrag) {
    [$titel, $yPos, $zielseite] = $eintrag;
    ps_show_xy($ps, $nr . '. ' . $titel, 80, $yPos);
    // Linkbereich je Eintrag setzen
    ps_add_locallink($ps, 80, $yPos - 5, 350, $yPos + 15, $zielseite, 'fitwidth');
}

ps_end_page($ps);

// Platzhalter-Seiten 2-4
foreach (['Einleitung', 'Hauptteil', 'Fazit'] as $kapitel) {
    ps_begin_page($ps, 595, 842);
    ps_show_xy($ps, $kapitel, 80, 750);
    ps_end_page($ps);
}

ps_close($ps);
ps_delete($ps);

echo 'Inhaltsverzeichnis mit Links erstellt.';
?>
Inhaltsverzeichnis mit Links erstellt.

// Wichtig · Fallstricke

Verfügbarkeit: Die ps-Erweiterung ist kein Bestandteil der PHP-Standardinstallation. Sie muss über PECL installiert werden (pecl install ps). Prüfen Sie mit extension_loaded('ps'), ob die Erweiterung verfügbar ist.

Koordinatensystem: PostScript verwendet standardmäßig den Ursprung unten links. Achten Sie darauf, dass die Koordinaten für lly und ury entsprechend korrekt gesetzt werden – lly muss kleiner als ury sein.

Seitenreferenz: Die mit page angegebene Seite muss im fertigen Dokument existieren. Verweise auf nicht vorhandene Seiten können zu undefinierten Darstellungen im Viewer führen.