IRONSOFTWAREHOME

Jak dodawać zakładki PDF i spis treści w Javie

Curtis Chau
Curtis Chau
Updated: 16 czerwca 2026

Biblioteka Java IronPDF pozwala programowo dodawać zakładki i kontury do dokumentów PDF za pośrednictwem klasy BookmarkManager, wspierajacej zarówno struktury zakładek jedno- jak i wielowarstwowe z konfigurowalnymi punktami nawigacyjnymi.

Szybki start: Dodawanie zakładek PDF w Javie
  1. Zainstaluj bibliotekę Java IronPDF i ustaw swój klucz licencyjny
  2. Załaduj swój PDF za pomocą PdfDocument.fromFile()
  3. Uzyskaj BookmarkManager za pomocą pdf.getBookmark()
  4. Dodaj zakładki za pomocą addBookMarkAtEnd("Title", pageNumber)
  5. Zapisz PDF za pomocą pdf.saveAs()
  1. 1Install IronPDF with Maven Central Repository

    mvn install

  2. 2Skopiuj i uruchom ten fragment kodu.

    //: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("Chapter 1", 0);
    pdf.saveAs(Path.of("bookmarked.pdf"));
    Java
  3. 3Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
    arrow pointer

Zakładki PDF poprawiają użyteczność i nawigację w twoich dokumentach. Kontury zapewniają zorganizowaną nawigację w PDF, pozwalając użytkownikom przeskakiwać bezpośrednio do kluczowych sekcji, podobnie jak w spisie treści. Jest to nieodzowne, gdy pracujesz z dłuższymi dokumentami, raportami lub wielorozdziałowymi PDF, które wymagają zorganizowanej nawigacji.

IronPDF upraszcza manipulację dokumentami PDF w aplikacjach Javowych. API do zakładek daje proste metody tworzenia niestandardowych zakładek w plikach PDF. Biblioteka integruje się z aplikacjami Java i wspiera różne funkcje manipulacji PDF poza zakładkami, w tym scalanie PDF, tworzenie formularzy i dodawanie znaków wodnych.

Co jest potrzebne przed rozpoczęciem?

Przed wdrożeniem zakładek PDF potwierdź, że IronPDF jest skonfigurowany w twoim projekcie Java. Biblioteka wymaga Java 8 lub nowszego i integruje się przez Maven lub Gradle. Dodaj zależność IronPDF do pliku budowy projektu. Dla szczegółowych instrukcji dotyczących konfiguracji, zobacz Omówienie rozpoczęcia.

Ważny klucz licencyjny jest wymagany do użytku deweloperskiego i produkcyjnego. Ustaw klucz licencyjny na początku aplikacji przed wywołaniem jakichkolwiek metod IronPDF. Aby uzyskać informacje o opcjach licencyjnych, odwiedź przewodnik licencyjny.

Porady: Wszystkie indeksy stron w IronPDF używają zerowo-bazowego numerowania. Strona 1 twojego dokumentu to indeks 0, strona 2 to indeks 1 i tak dalej.

Jak dodać kontury i zakładki do PDF?

Poniższe przykłady wykorzystują ten przykładowy PDF, aby zademonstrować tworzenie konturów i zakładek. Proces obejmuje załadowanie istniejącego dokumentu PDF i użycie BookmarkManager IronPDF do dodawania punktów nawigacyjnych w całym dokumencie.

Jak mogę dodać pojedynczą warstwę zakładek?

Płaska lista zakładek pasuje do dokumentów o jasnej, niehierarchicznej strukturze: raportów, instrukcji obsługi produktu lub prezentacji, gdzie każda sekcja jest samodzielna. Po załadowaniu PDF z ścieżki pliku za pomocą PdfDocument.fromFile(), pobierz obiekt BookmarkManager, aby rozpocząć dodawanie zakładek.

Metody addBookMarkAtEnd i addBookMarkAtStart dodają wpisy odpowiednio na koniec lub początek kolekcji zakładek. Te metody dają elastyczność w organizowaniu zakładek w sposób dopasowany do struktury dokumentu. Każdy wpis wymaga tytułu wyświetlania i indeksu strony zaczynającego się od zera.

//: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"));
    }
}
Java

W przeglądarce PDF powyżej, sprawdź spis treści w lewym górnym rogu większości przeglądarek, aby zobaczyć wszystkie dodane zakładki. Ta płaska struktura zakładek zapewnia łatwą nawigację dla dokumentów o prostych potrzebach organizacyjnych.

Jak utworzyć kilka warstw zakładek?

Zagnieżdżone zakładki są odpowiednim wyborem dla dokumentacji technicznej, raportów badawczych lub jakiegokolwiek dokumentu wielorozdziałowego, gdzie czytelnicy muszą nawigować nie tylko do rozdziałów, ale także do podsekcji w ramach tych rozdziałów. Rozpocznij od tych samych płaskich zakładek, które utworzyłeś w poprzedniej sekcji, a następnie użyj insertBookmark, aby dodawać wpisy na nowych warstwach.

Metoda insertBookmark przyjmuje cztery parametry: nazwę zakładki, indeks docelowej strony, nazwę zakładki rodzicielskiej i nazwę poprzedniej zakładki rodzeństwa. Przekazanie nazwy zakładki rodzica tworzy zagnieżdżony pod nią wpis podrzędny. Ustawienie parametru rodzeństwa na null plasuje nowy wpis jako pierwsze dziecko tego rodzica.

//: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"));
    }
}
Java

PDF powyżej pokazuje strukturę drzewa zakładek utworzonych przez insertBookmark. Rozwiń panel konspektu, aby zweryfikować, jak każdy wpis dziecięcy jest zagnieżdżony pod swoim rodzicem. To warstwowe podejście pasuje do raportów z rozdziałami, podrozdziałami i załącznikami.


Jak mogę pobrać istniejące zakładki z PDF-a?

Odczytywanie danych zakładek z pliku PDF jest wymogiem w przypadku aktualizacji dokumentów bez odbudowy całej struktury nawigacji. IronPDF udostępnia to poprzez ten sam interfejs BookmarkManager, który jest używany do dodawania zakładek. Załaduj PDF z PdfDocument.fromFile(), uzyskaj dostęp do BookmarkManager, a następnie wywołaj getBookmarks(), aby pobrać wszystkie zakładki najwyższego poziomu.

Użyj get(index), aby uzyskać dostęp do określonej zakładki według jej pozycji na liście. Metoda getText() zwraca etykietę wyświetlaną zakładki, a getPageIndex() zwraca zerobazowy numer strony, do której się odnosi. Zakładki dziecka nie są zawarte w płaskiej liście zwracanej przez @@--CODE-248@@; uzyskaj do nich dostęp przez metodę getChildren() każdej zakładki rodzica.

//: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());
        }
    }
}
Java
Zwróć uwagę: Metoda getBookmarks() zwraca tylko płaską listę zakładek najwyższego poziomu. Aby przejść pełne drzewo zakładek, rekurencyjnie wywołuj getChildren() na każdej zakładce, która ma zagnieżdżone wpisy.

Ten wzorzec odzyskiwania jest użyteczny przy audytowaniu struktury nawigacyjnej istniejącego pliku PDF przed dystrybucją lub przy budowaniu narzędzi, które muszą sprawdzać, czy wymagane sekcje są poprawnie zaznaczone przed publikacją.


Jak mogę dodać zakładkę w określonym indeksie?

Wstawianie zakładek w określonej pozycji pozwala na aktualizację istniejących plików PDF stopniowo, dodając nowe sekcje bez potrzeby odbudowywania całego konspektu od zera. Jest to szczególnie przydatne, gdy pliki PDF są generowane lub modyfikowane w ramach przepływu zadań, a nowa zawartość jest dodawana na końcu.

Pobierz płaską listę zakładek za pomocą getBookmarks(), wybierz celowaną zakładkę według jej indeksu na liście, a następnie wywołaj addNextBookmark, aby wstawić nową zakładkę rodzeństwa bezpośrednio po niej. Użyj addChildBookmark, aby umieścić nowy wpis jeden poziom głębiej, zagnieżdżony pod wybraną zakładką. Obie metody przyjmują ciąg tytułu i indeks strony zaczynający się od zera.

//: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"));
    }
}
Java
Zwróć uwagę: Podczas scalania dwóch plików PDF, których zakładki mają identyczne nazwy, wynikowa lista zakładek może zachowywać się nieprzewidywalnie. Zmień nazwy konfliktowych zakładek przed scaleniem, aby zachować czysty konspekt.

Metoda addNextBookmark wstawia nowe wpisy jako rodzeństwo wybranej zakładki, zaraz po niej na liście. Metoda addChildBookmark umieszcza nowy wpis jeden poziom głębiej, zagnieżdżony pod wybraną zakładką. Obie metody przyjmują ciąg tytułu i indeks strony zaczynający się od zera.

Jakie są następne kroki dotyczące zakładek PDF w Java?

Zakładki PDF umożliwiają użytkownikom bezpośrednią nawigację przez złożone dokumenty bez przewijania. Silnik BookmarkManager IronPDF obsługuje pełen zakres operacji na zakładkach: dodawanie płaskich list wpisów, budowanie głębokich wielopoziomowych konturów, pobieranie istniejących wpisów i wstawianie w określonych pozycjach.

Aby kontynuować pracę z funkcjami struktury dokumentu i nawigacji, zapoznaj się z tymi zasobami:

Rozpocznij bezpłatny okres próbny, aby dodać zakładki, konspekty i inne funkcje nawigacyjne do procesu pracy z PDF w Java. Aby zakupić licencję do użycia produkcyjnego, zobacz opcje licencjonowania.

Często Zadawane Pytania

Jak dodac zakladki do dokumentu PDF w Javie?

Załaduj swój PDF za pomocą PdfDocument.fromFile(), a następnie wywołaj pdf.getBookmark() aby uzyskać BookmarkManager. Użyj addBookMarkAtEnd("Tytuł", pageIndex) aby dodać każdy zakładkę pod nazwą wyświetlaną i numerem strony bazowanym na zerze, a następnie zapisz za pomocą pdf.saveAs().

Jakie są wymagania wstępne dla dodawania zakładek PDF w Java?

Potrzebujesz Java 8 lub nowszy, biblioteki IronPDF dodanej jako zależność Maven lub Gradle, i ustawionego ważnego klucza licencyjnego za pomocą License.setLicenseKey() przed jakimkolwiek wywołaniem IronPDF. Nie są wymagane dodatkowe narzędzia lub frameworki.

Czy moge utworzyc drzewo zakladek wielopoziomowych w PDF?

Tak. Najpierw dodaj zakładki najwyższego poziomu za pomocą addBookMarkAtEnd, a następnie wywołaj insertBookmark(name, pageIndex, parentName, siblingName) aby zagnieździć wpisy potomne pod zakładką-rodzicem. Przekaż null jako nazwę rodzeństwa, aby umieścić nowy wpis jako pierwsze dziecko.

Jaka jest różnica między addBookMarkAtEnd a insertBookmark?

addBookMarkAtEnd dodaje nowy wpis najwyższego poziomu na końcu listy zakładek. insertBookmark umieszcza zakładkę na konkretnym miejscu w hierarchii, określając nazwę zakładki rodzica i opcjonalne poprzedzające rodzeństwo, umożliwiając zagnieżdżone kontury.

Jak odczytać istniejące zakładki z PDF w Java?

Wywołaj pdf.getBookmark().getBookmarks() aby pobrać płaską listę zakładek najwyższego poziomu. Uzyskaj dostęp do poszczególnych wpisów po indeksie za pomocą list.get(index). Użyj bookmark.getText() dla tytułu i bookmark.getPageIndex() dla numeru strony bazowanego na zerze. Zakładki potomne są dostępne za pomocą bookmark.getChildren().

Jak wstawić zakładkę po konkretnej istniejącej zakładce?

Pobierz listę zakładek za pomocą getBookmarks(), wybierz docelowy wpis po indeksie, a następnie wywołaj bookmark.addNextBookmark("Tytuł", pageIndex) aby wstawić rodzeństwo bezpośrednio po nim, lub bookmark.addChildBookmark("Tytuł", pageIndex) aby zagnieździć nowy wpis pod nim.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Wersja:2026.6właśnie wydany

Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka Java Maven dla PDF
Zainstaluj za pomocą Maven

Wersja: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
lub
Plik JAR PDF Java
Pobierz JAR

Wersja: 2026.6

Pobierz teraz

Ręcznie zainstaluj w swoim projekcie

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta