Hinzufügen von PDF-Lesezeichen und Gliederung in Java
Mit der Java-Bibliothek von IronPDF können Sie über die Klasse BookmarkManager programmgesteuert Lesezeichen und Gliederungen zu PDF-Dokumenten hinzufügen. Dabei werden sowohl ein- als auch mehrschichtige Lesezeichenstrukturen mit anpassbaren Navigationspunkten unterstützt.
Schnellstart: PDF-Lesezeichen in Java hinzufügen
- Installieren Sie die IronPDF-Java-Bibliothek und setzen Sie Ihren Lizenzschlüssel
- Laden Sie Ihre PDF-Datei über
PdfDocument.fromFile() - Holen Sie sich das
BookmarkManagermitpdf.getBookmark() - Lesezeichen hinzufügen mit
addBookMarkAtEnd("Title", pageNumber) - Speichern Sie die PDF-Datei mit
pdf.saveAs()
```java :title=Schnellstart //:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/quickstart.java PdfDocument pdf = PdfDocument.fromFile(Path.of("document.pdf")); BookmarkManager bookmarks = PDF.getBookmark(); bookmarks.addBookMarkAtEnd("Kapitel 1", 0); pdf.saveAs(Path.of("bookmarked.pdf"));
PDF-Lesezeichen verbessern die Benutzerfreundlichkeit und Navigation Ihrer Dokumente. Gliederungen bieten strukturierte Navigation innerhalb von PDFs und lassen Benutzer direkt zu wichtigen Abschnitten springen, ähnlich wie ein Inhaltsverzeichnis. Dies erweist sich als unerlässlich bei der Arbeit mit umfangreichen Dokumenten, Berichten oder Mehrkapitel-PDFs, die eine organisierte Navigation erfordern.
IronPDF vereinfacht die PDF-Bearbeitung in Java-Anwendungen. Die Lesezeichen-API bietet Ihnen einfache Methoden zum Erstellen benutzerdefinierter Lesezeichen in PDF-Dateien. Die Bibliothek integriert sich in Java-Anwendungen und unterstützt verschiedene PDF-Manipulationsfunktionen über Lesezeichen hinaus, einschließlich [PDFs zusammenführen](https://ironpdf.com/java/how-to/java-merge-pdf-tutorial/), [Formulare erstellen](https://ironpdf.com/java/how-to/create-forms/) und [Wasserzeichen hinzufügen](https://ironpdf.com/java/how-to/custom-watermark/).
<div class="hsg-featured-snippet">
<h2>So fügen Sie PDF-Lesezeichen und Gliederungen hinzu</h2>
<ol>
<li><a href="https://ironpdf.com/java/#download-modal">Installieren Sie die Java-Bibliothek, um Lesezeichen zu PDFs hinzuzufügen</a></li>
<li>Verwenden Sie die <strong>PdfDocument</strong>-Klasse, um eine vorhandene PDF-Datei in Java zu laden</li>
<li>Erstellen und passen Sie Lesezeichen mit der <strong>BookmarkManager</strong>-Klasse an</li>
<li>Verwenden Sie <code>addBookMarkAtEnd</code>, um Lesezeichen zu bestimmten Seiten der PDF-Datei hinzuzufügen</li>
<li>Speichern Sie das PDF-Dokument mit der neuen Gliederung und den Lesezeichen</li>
</ol>
</div>
## Was brauche ich, bevor ich anfange?
Bestätigen Sie vor der Implementierung von PDF-Lesezeichen, dass IronPDF in Ihrem Java-Projekt konfiguriert ist. Die Bibliothek erfordert Java 8 oder höher und integriert sich über [Maven oder Gradle](https://central.sonatype.com/artifact/com.ironsoftware/ironpdf). Fügen Sie die IronPDF-Abhängigkeit zu Ihrer Projekt-Build-Datei hinzu. Für detaillierte Einrichtungshinweise beziehen Sie sich auf die [Erste-Schritte-Übersicht](https://ironpdf.com/java/docs/).
Ein gültiger Lizenzschlüssel ist für die Entwicklung und den Einsatz in der Produktion erforderlich. Setzen Sie den Lizenzschlüssel zu Beginn Ihrer Anwendung, bevor Sie IronPDF-Methoden aufrufen. Für Informationen zu Lizenzierungsoptionen besuchen Sie den [Lizenzierungsleitfaden](https://ironpdf.com/java/get-started/license-keys/).
TippsAlle Seitenindizes in IronPDF verwenden nullbasierte Nummerierung. Seite 1 Ihres Dokuments ist Index 0, Seite 2 ist Index 1, und so weiter.
## Wie füge ich Gliederung und Lesezeichen zu einem PDF hinzu?
Die unten stehenden Beispiele verwenden dieses [Beispiel-PDF](/static-assets/ironpdf-java/howto/bookmarks/NovelSample.pdf), um die Erstellung von Gliederungen und Lesezeichen zu demonstrieren. Der Prozess umfasst das Laden eines vorhandenen PDF-Dokuments und die Verwendung von IronPDFs `BookmarkManager`, um Navigationspunkte im gesamten Dokument einzufügen.
### Wie kann ich eine einzelne Ebene von Lesezeichen hinzufügen?
Eine flache Lesezeichenliste eignet sich für Dokumente mit einer klaren, nicht-hierarchischen Struktur: Berichte, Produktanleitungen oder Präsentationsdecks, bei denen jeder Abschnitt für sich allein steht. Nachdem Sie die PDF-Datei über `PdfDocument.fromFile()` aus einem Dateipfad geladen haben, rufen Sie das `BookmarkManager`-Objekt ab, um mit dem Hinzufügen von Lesezeichen zu beginnen.
Die Methoden `addBookMarkAtEnd` und `addBookMarkAtStart` fügen Einträge jeweils am Ende oder am Anfang der Lesezeichensammlung hinzu. Diese Methoden bieten Ihnen Flexibilität bei der Organisation von Lesezeichen entsprechend der Struktur Ihres Dokuments. Jeder Eintrag benötigt einen Anzeigetitel und einen nullbasierten Seitenindex.
```java
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/single-layer.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the PDF file
PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf"));
// Get BookmarkManager object to manage bookmarks
BookmarkManager bookmarks = PDF.getBookmark();
// Add bookmarks at the end of the bookmark collection
bookmarks.addBookMarkAtEnd("Title Page", 0);
bookmarks.addBookMarkAtEnd("Table of Contents", 1);
bookmarks.addBookMarkAtEnd("Dedication Page", 2);
bookmarks.addBookMarkAtEnd("First Page", 3);
bookmarks.addBookMarkAtStart("Page 4", 6);
// Save the modified PDF with bookmarks
pdf.saveAs(Path.of("bookmarked.pdf"));
}
}
Mit dem PDF-Viewer oben checken Sie das Inhaltsverzeichnis in der oberen linken Ecke der meisten Browser, um alle hinzugefügten Lesezeichen zu sehen. Diese flache Lesezeichenstruktur bietet eine einfache Navigation für Dokumente mit einfachen organisatorischen Anforderungen.
Wie kann ich mehrere Ebenen von Lesezeichen erstellen?
Verschachtelte Lesezeichen sind die richtige Wahl für technische Dokumentationen, Forschungsberichte oder jedes Mehrkapitel-Dokument, bei dem Leser nicht nur zu Kapiteln, sondern auch zu Unterabschnitten innerhalb dieser Kapitel navigieren müssen. Beginnen Sie mit denselben flachen Lesezeichen, die im vorherigen Abschnitt erstellt wurden, und verwenden Sie dann insertBookmark, um Einträge auf neuen Ebenen hinzuzufügen.
Die Methode insertBookmark akzeptiert vier Parameter: den Lesezeichennamen, den Index der Zielseite, den Namen des übergeordneten Lesezeichens und den Namen des vorhergehenden gleichrangigen Lesezeichens. Das Übergeben eines übergeordneten Lesezeichennamens erstellt einen untergeordneten Eintrag, der darunter geschachtelt ist. Durch Setzen des "sibling"-Parameters auf null wird der neue Eintrag als erstes Kind dieses Elternelements platziert.
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/multi-layer.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the PDF file
PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf"));
// Get BookmarkManager object
BookmarkManager bookmarks = PDF.getBookmark();
// Add top-level bookmarks at the end
bookmarks.addBookMarkAtEnd("Title Page", 0);
bookmarks.addBookMarkAtEnd("Table of Contents", 1);
bookmarks.addBookMarkAtEnd("Dedication", 2);
// Insert second-layer bookmarks as children of existing entries
bookmarks.insertBookmark("First Page", 3, "Table of Contents", null);
bookmarks.insertBookmark("Second Page", 4, "Table of Contents", "First Page");
bookmarks.insertBookmark("End of Sample", 7, "Title Page", null);
bookmarks.insertBookmark("Fourth page", 6, "Table of Contents", "Second Page");
// Save the modified PDF with nested bookmarks
pdf.saveAs(Path.of("multiLayer.pdf"));
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/multi-layer.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the PDF file
PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf"));
// Get BookmarkManager object
BookmarkManager bookmarks = PDF.getBookmark();
// Add top-level bookmarks at the end
bookmarks.addBookMarkAtEnd("Title Page", 0);
bookmarks.addBookMarkAtEnd("Table of Contents", 1);
bookmarks.addBookMarkAtEnd("Dedication", 2);
// Insert second-layer bookmarks as children of existing entries
bookmarks.insertBookmark("First Page", 3, "Table of Contents", null);
bookmarks.insertBookmark("Second Page", 4, "Table of Contents", "First Page");
bookmarks.insertBookmark("End of Sample", 7, "Title Page", null);
bookmarks.insertBookmark("Fourth page", 6, "Table of Contents", "Second Page");
// Save the modified PDF with nested bookmarks
pdf.saveAs(Path.of("multiLayer.pdf"));
}
}
Das obige PDF zeigt die Baumstruktur der von insertBookmark erstellten Lesezeichen. Erweitern Sie das Gliederungspanel, um zu überprüfen, wie sich jeder untergeordnete Eintrag unter seinem Elterneintrag schachtelt. Dieser geschichtete Ansatz eignet sich für Berichte mit Kapiteln, Unterkapiteln und Anhängen.
Wie kann ich vorhandene Lesezeichen aus einer PDF-Datei wiederherstellen?
Das Lesen von Lesezeichendaten aus einem PDF ist eine Voraussetzung, wenn Sie Dokumente aktualisieren möchten, ohne die gesamte Navigationsstruktur neu zu erstellen. IronPDF macht dies über dieselbe BookmarkManager-Schnittstelle zugänglich, die auch zum Hinzufügen von Lesezeichen verwendet wird. Laden Sie die PDF-Datei mit PdfDocument.fromFile(), greifen Sie auf BookmarkManager zu und rufen Sie dann getBookmarks() auf, um alle Lesezeichen der obersten Ebene abzurufen.
Verwenden Sie get(index), um auf ein bestimmtes Lesezeichen anhand seiner Position in der Liste zuzugreifen. Die Methode getText() gibt die Anzeige-Bezeichnung des Lesezeichens zurück, während getPageIndex() die nullbasierte Seitenzahl zurückgibt, auf die es verweist. Untergeordnete Lesezeichen sind in der von getBookmarks() zurückgegebenen flachen Liste nicht enthalten; auf sie über die getChildren()-Methode des jeweiligen übergeordneten Lesezeichens zugreifen.
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/retrieve-bookmarks.java
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.Bookmark;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the PDF file with bookmarks
PdfDocument pdf = PdfDocument.fromFile(Path.of("bookmarked.pdf"));
// Retrieve the bookmark manager
BookmarkManager bookmarks = PDF.getBookmark();
// Retrieve list of all bookmarks (includes child bookmarks)
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
// Access a specific bookmark by zero-based index
Bookmark bookmark = bookmarkList.get(2);
// Print bookmark details
System.out.println("Bookmark Title: " + bookmark.getText());
System.out.println("Page Number: " + bookmark.getPageIndex());
// Check if bookmark has children
if (bookmark.getChildren() != null && !bookmark.getChildren().isEmpty()) {
System.out.println("Number of child bookmarks: " + bookmark.getChildren().size());
}
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/retrieve-bookmarks.java
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.Bookmark;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the PDF file with bookmarks
PdfDocument pdf = PdfDocument.fromFile(Path.of("bookmarked.pdf"));
// Retrieve the bookmark manager
BookmarkManager bookmarks = PDF.getBookmark();
// Retrieve list of all bookmarks (includes child bookmarks)
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
// Access a specific bookmark by zero-based index
Bookmark bookmark = bookmarkList.get(2);
// Print bookmark details
System.out.println("Bookmark Title: " + bookmark.getText());
System.out.println("Page Number: " + bookmark.getPageIndex());
// Check if bookmark has children
if (bookmark.getChildren() != null && !bookmark.getChildren().isEmpty()) {
System.out.println("Number of child bookmarks: " + bookmark.getChildren().size());
}
}
}
getBookmarks()-Methode gibt nur eine flache Liste der Lesezeichen der obersten Ebene zurück. Um den gesamten Lesezeichenbaum zu durchlaufen, rufen Sie getChildren() rekursiv für jedes Lesezeichen auf, das verschachtelte Einträge enthält.Dieses Abrufmuster ist nützlich, wenn Sie die Navigationsstruktur eines vorhandenen PDFs vor der Verteilung prüfen oder ein Tool erstellen möchten, das prüfen muss, ob erforderliche Abschnitte vor der Veröffentlichung korrekt mit Lesezeichen versehen sind.
Wie kann ich ein Lesezeichen in einen bestimmten Index einfügen?
Das Einfügen von Lesezeichen an einer bestimmten Stelle ermöglicht es Ihnen, vorhandene PDFs schrittweise zu aktualisieren und neue Abschnitte hinzuzufügen, ohne die gesamte Gliederung von Grund auf neu aufzubauen. Dies ist besonders nützlich, wenn PDFs in einer Pipeline generiert oder geändert werden und neuer Inhalt stromabwärts angefügt wird.
Rufen Sie die flache Lesezeichenliste mit getBookmarks() ab, wählen Sie das Ziel-Lesezeichen anhand seines Listenindexes aus und rufen Sie dann addNextBookmark auf, um unmittelbar danach ein neues Lesezeichen einzufügen. Verwenden Sie addChildBookmark, um einen neuen Eintrag eine Ebene tiefer unter dem ausgewählten Lesezeichen einzufügen. Beide Methoden akzeptieren einen Titelstring und einen nullbasierten Seitenindex.
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/insert-at-index.java
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.Bookmark;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the PDF modified in the multi-layer example
PdfDocument pdf = PdfDocument.fromFile(Path.of("multiLayer.pdf"));
// Get the BookmarkManager
BookmarkManager bookmarks = PDF.getBookmark();
// Retrieve the flat bookmark list
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
// Select a bookmark at a specific index
Bookmark bookmark = bookmarkList.get(5);
// Insert a new bookmark after the selected entry
bookmark.addNextBookmark("Fourth Page", 6);
// Add a child bookmark under the selected entry
bookmark.addChildBookmark("Section 1", 7);
// Save the updated PDF
pdf.saveAs(Path.of("specificIndex.pdf"));
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/bookmarks/insert-at-index.java
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.Bookmark;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the PDF modified in the multi-layer example
PdfDocument pdf = PdfDocument.fromFile(Path.of("multiLayer.pdf"));
// Get the BookmarkManager
BookmarkManager bookmarks = PDF.getBookmark();
// Retrieve the flat bookmark list
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
// Select a bookmark at a specific index
Bookmark bookmark = bookmarkList.get(5);
// Insert a new bookmark after the selected entry
bookmark.addNextBookmark("Fourth Page", 6);
// Add a child bookmark under the selected entry
bookmark.addChildBookmark("Section 1", 7);
// Save the updated PDF
pdf.saveAs(Path.of("specificIndex.pdf"));
}
}
Die Methode addNextBookmark fügt den neuen Eintrag als gleichrangigen Eintrag des ausgewählten Lesezeichens ein, unmittelbar danach in der Liste. Die Methode addChildBookmark platziert den neuen Eintrag eine Ebene tiefer, verschachtelt unter dem ausgewählten Lesezeichen. Beide Methoden akzeptieren einen Titelstring und einen nullbasierten Seitenindex.
Was sind die nächsten Schritte für PDF-Lesezeichen in Java?
PDF-Lesezeichen bieten Benutzern einen direkten Navigationspfad durch komplexe Dokumente, ohne scrollen zu müssen. IronPDFs BookmarkManager unterstützt die gesamte Bandbreite an Lesezeichen-Funktionen: Hinzufügen von einfachen Eintragslisten, Erstellen von tief gegliederten mehrstufigen Gliederungen, Abrufen bestehender Einträge und Einfügen an bestimmten Positionen.
Um weiterhin mit Dokumentstruktur- und Navigationsfunktionen zu arbeiten, erkunden Sie diese verwandten Ressourcen:
- PDFs in Java aufteilen: kleinere, in sich geschlossene Dokumente erstellen, die ihre eigene Lesezeichenstruktur tragen
- PDFs in Java drucken: markierte Dokumente an einen Drucker senden, wobei die Navigation erhalten bleibt
- Java PDF-Tutorials: zusätzliche vollständige Beispiele für häufige PDF-Arbeitsabläufe
- Anmerkungen zu PDFs in Java hinzufügen: Kommentare und Markups an bestimmten Seitenorten anhängen
- IronPDF for Java-Beispiele: Codebeispiele für die gesamte IronPDF Java API kopieren und einfügen
Starten Sie Ihre kostenlose Testversion, um Lesezeichen, Gliederungen und andere Navigationsfunktionen zu Ihrem Java-PDF-Workflow hinzuzufügen. Um eine Lizenz für den Produktionseinsatz zu erwerben, sehen Sie sich Lizenzierungsoptionen an.
Häufig gestellte Fragen
Wie kann ich in Java Lesezeichen zu einem PDF-Dokument hinzufügen?
Laden Sie Ihr PDF mithilfe von PdfDocument.fromFile(), dann rufen Sie pdf.getBookmark() auf, um den BookmarkManager zu erhalten. Verwenden Sie addBookMarkAtEnd("Titel", pageIndex), um jedes Lesezeichen mit Anzeigenamen und nullbasiertem Seitenindex hinzuzufügen, und speichern Sie dann mit pdf.saveAs().
Was sind die Voraussetzungen zum Hinzufügen von PDF-Lesezeichen in Java?
Sie benötigen Java 8 oder höher, die IronPDF-Bibliothek als Maven- oder Gradle-Abhängigkeit hinzugefügt und einen gültigen Lizenzschlüssel mit License.setLicenseKey() vor allen IronPDF-Aufrufen. Keine weiteren Tools oder Frameworks erforderlich.
Kann ich mehrstufige Lesezeichenhierarchien in PDFs erstellen?
Ja. Fügen Sie zuerst Lesezeichen der obersten Ebene mit addBookMarkAtEnd hinzu, dann rufen Sie insertBookmark(name, pageIndex, parentName, siblingName) auf, um untergeordnete Einträge unter einem übergeordneten Lesezeichen zu verschachteln. Geben Sie null als den Geschwisternamen an, um den neuen Eintrag als erstes Kind zu platzieren.
Was ist der Unterschied zwischen addBookMarkAtEnd und insertBookmark?
addBookMarkAtEnd fügt ein neues übergeordnetes Element am Ende der Lesezeichenliste hinzu. insertBookmark platziert ein Lesezeichen an einer spezifischen Position in der Hierarchie, indem ein übergeordneter Lesezeichenname und optional ein vorangehender Geschwister angegeben werden, was verschachtelte Umrisse ermöglicht.
Wie lese ich vorhandene Lesezeichen aus einem PDF in Java?
Rufen Sie pdf.getBookmark().getBookmarks() auf, um eine flache Liste von Lesezeichen der obersten Ebene zu erhalten. Greifen Sie über list.get(index) auf einzelne Einträge zu. Verwenden Sie bookmark.getText() für den Titel und bookmark.getPageIndex() für die nullbasierte Seitenzahl. Untergeordnete Lesezeichen sind über bookmark.getChildren() zugänglich.
Wie füge ich ein Lesezeichen nach einem bestimmten vorhandenen Lesezeichen ein?
Rufen Sie die Lesezeichenliste mit getBookmarks() ab, wählen Sie den Zieleintrag nach Index aus und rufen Sie bookmark.addNextBookmark("Titel", pageIndex) auf, um ein Geschwister unmittelbar danach einzufügen, oder bookmark.addChildBookmark("Titel", pageIndex), um einen neuen Eintrag darunter zu verschachteln.


