Navigation und Aktionen
Navigation und Aktionen
Aspose.PDF FOSS for .NET unterstützt PDF‑Navigationsstrukturen — Lesezeichen (Outlines), Seitenziele und Dokumentaktionen. Diese ermöglichen das Erstellen interaktiver Dokumente mit Inhaltsverzeichnis‑Navigation, seitenübergreifenden Links und JavaScript‑Auslösern.
Dokumentgliederungen (Lesezeichen)
OutlineCollection enthält den Lesezeichenbaum des Dokuments. Jeder OutlineItemCollection ist ein Lesezeicheneintrag mit einem Titel und einem Ziel.
using var doc = Document.Open(pdfBytes);
foreach (var item in doc.Outlines)
{
Console.WriteLine($"Bookmark: {item.Title}");
}Lesezeichen erstellen
using var doc = Document.Open(pdfBytes);
var bookmark = new OutlineItemCollection(doc.Outlines);
bookmark.Title = "Chapter 1";
bookmark.Action = new GoToAction(doc.Pages[1]);
doc.Outlines.Add(bookmark);
doc.Save("with-bookmarks.pdf");GoTo‑Aktionen
GoToAction navigiert zu einer bestimmten Seite und einem Fit‑Typ innerhalb desselben Dokuments.
var goTo = new GoToAction(doc.Pages[3]);Benannte Aktionen
NamedAction löst vordefinierte PDF‑Viewer‑Befehle wie NextPage, PrevPage, FirstPage und LastPage aus.
var nextPage = PdfAction.CreateNamed("NextPage");GoToRemote Aktionen
GoToRemoteAction öffnet eine externe PDF-Datei und navigiert zu einer bestimmten Seite.
var remote = new GoToRemoteAction("other.pdf", 1);Aktionen starten
LaunchAction öffnet eine externe Datei (beliebiges Format) von einem PDF-Link.
var launch = new LaunchAction("readme.txt");Zielsammlungen
DestinationCollection ordnet benannte Ziele Seiten zu und unterstützt die Querverweisdavigation in großen Dokumenten.
var dest = doc.Destinations;
int pageNum = dest.GetPageNumber("section2");Tipps und bewährte Verfahren
- Erstellen Sie einen Lesezeichenbaum, der die Abschnittshierarchie Ihres Dokuments für eine intuitive Navigation widerspiegelt.
- Verwenden Sie
GoToActionzusammen mitFitType, um zu steuern, wie die Zielseite angezeigt wird (Breite anpassen, Seite anpassen usw.). - Benannte Aktionen sind vom Viewer abhängig — verwenden Sie Standardnamen (NextPage, PrevPage, FirstPage, LastPage).
- Für dokumentübergreifende Links verwenden Sie
GoToRemoteActionanstelle von URI‑Aktionen, die auf PDF‑Dateien verweisen. - Aktionssammlungen auf einer Seite ermöglichen das Hinzufügen mehrerer Aktionen, die beim Öffnen der Seite ausgelöst werden.
Häufige Probleme
| Issue | Cause | Fix |
|---|---|---|
| Lesezeichen navigiert nicht | Aktion nicht für das Gliederungselement festgelegt | Weisen Sie GoToAction zu OutlineItemCollection.Action |
| GoTo‑Aktion zielt auf falsche Seite | Seitenindex ist intern 0‑basiert, aber Seiten sind 1‑basiert | Verwenden Sie doc.Pages[n] direkt im GoToAction‑Konstruktor |
| Benannte Aktion hat keine Wirkung | Viewer unterstützt die benannte Aktion nicht | Verwenden Sie nur Standardnamen |
FAQ
Wie erstelle ich ein Inhaltsverzeichnis?
Erstellen Sie OutlineItemCollection-Einträge für jeden Abschnitt, jeweils mit einem
GoToAction, das auf die erste Seite des Abschnitts abzielt.
Kann ich Lesezeichen verschachteln?
Ja. Fügen Sie dem übergeordneten Lesezeichen untergeordnete OutlineItemCollection‑Einträge hinzu, um eine hierarchische Gliederung zu erstellen.
Welche Fit-Typen sind für GoTo-Aktionen verfügbar?
Fit, FitH (Breite anpassen), FitV (Höhe anpassen), FitR (Rechteck anpassen), und FitB (begrenzende Box anpassen).
API-Referenzübersicht
| Klasse / Methode | Beschreibung |
|---|---|
OutlineCollection | Lesezeichen‑Sammlung auf oberster Ebene im Dokument |
OutlineItemCollection | Einzelner Lesezeicheneintrag mit Titel und Aktion |
GoToAction | Navigieren zu einer Seite im selben Dokument |
GoToRemoteAction | Navigieren zu einer Seite in einer externen PDF |
LaunchAction | Eine externe Datei öffnen |
NamedAction | Einen vordefinierten Viewer‑Befehl auslösen |
PdfAction.CreateGoTo | Factory für GoTo‑Aktionen |
PdfAction.CreateNamed | Factory für benannte Aktionen |
ActionCollection | Sammlung von Aktionen auf einer Seite oder Anmerkung |
DestinationCollection | Registrierung benannter Ziele |
ActionType | Aufzählung: GoTo, URI, JavaScript, Named, Launch |