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

This article was translated from English: Does it need improvement?
Translated
View the article in English

Biblioteka IronPDF dla Javy umożliwia programowe dodawanie zakładek i spisów treści do dokumentów PDF za pomocą klasy BookmarkManager, wspierając zarówno jednopoziomowe, jak i wielopoziomowe struktury zakładek z konfigurowalnymi punktami nawigacyjnymi.

Szybki start: Dodawanie zakładek PDF w Javie

  1. Zainstaluj bibliotekę IronPDF dla Javy i ustaw swój klucz licencyjny
  2. Załaduj swój PDF za pomocą PdfDocument.fromFile()
  3. Uzyskaj BookmarkManager używając pdf.getBookmark()
  4. Dodaj zakładki używając addBookMarkAtEnd("Title", pageNumber)
  5. Zapisz PDF używając pdf.saveAs()

```java :title=Quickstart PdfDocument pdf = PdfDocument.fromFile(Path.of('document.pdf')); BookmarkManager bookmarks = pdf.getBookmark(); bookmarks.addBookMarkAtEnd('Rozdział 1', 0); pdf.saveAs(Path.of('bookmarked.pdf'));


Zakładki PDF znacząco poprawiają użyteczność i nawigację w Twoich dokumentach. Spisy treści zapewniają zorganizowaną nawigację w PDF-ach, pozwalając użytkownikom na szybkie przejście do kluczowych sekcji, takich jak spis treści. Ta funkcjonalność okazuje się niezbędna podczas pracy z długimi dokumentami, raportami lub PDF-ami z wieloma rozdziałami, które wymagają zorganizowanej nawigacji.

IronPDF upraszcza manipulację dokumentami PDF w aplikacjach Javowych. Funkcjonalność zakładek zapewnia proste metody tworzenia własnych zakładek w plikach PDF. Biblioteka integruje się bezproblemowo z aplikacjami Javowymi i wspiera różne funkcje manipulacji PDF poza zakładkami, w tym [łączenie PDF-ów](https://ironpdf.com/java/how-to/java-merge-pdf-tutorial/), [tworzenie formularzy](https://ironpdf.com/java/how-to/create-forms/) i [dodawanie znaków wodnych](https://ironpdf.com/java/how-to/custom-watermark/).

<div class="hsg-featured-snippet">
    <h2>Jak dodawać zakładki PDF i spis treści</h2>
    <ol>
        <li><a href="https://ironpdf.com/java/#download-modal">Zainstaluj bibliotekę Javy, aby dodać zakładki do PDF-ów</a></li>
        <li>Utilize the <strong>`PdfDocument`</strong> class to load an existing PDF file in Java</li>
        <li>Create and customize the bookmarks with the <strong>`BookmarkManager`</strong> class</li>
        <li>Use `addBookMarkAtEnd` to add bookmarks to specific pages of the PDF</li>
        <li>Zapisz dokument PDF zawierający nowy spis treści i zakładki</li>
    </ol>
</div>

## Co jest potrzebne przed rozpoczęciem?

Przed implementacją zakładek PDF upewnij się, że masz poprawnie skonfigurowane IronPDF w swoim projekcie Javowym. Biblioteka wymaga Javy 8 lub nowszej i może być łatwo zintegrowana za pomocą Mavena lub Gradle. Musisz dodać zależność IronPDF do pliku budowy swojego projektu. Szczegółowe instrukcje dotyczące ustawień znajdziesz w [przeglądzie rozpoczęcia pracy](https://ironpdf.com/java/docs/).

Musisz także upewnić się, że twój klucz licencyjny jest poprawnie skonfigurowany, ponieważ IronPDF wymaga licencji do rozwoju. Dla pełnej informacji o opcjach licencjonowania i implementacji, odwiedź [przewodnik licencyjny](https://ironpdf.com/java/get-started/license-keys/). Ustaw klucz licencyjny na początku swojej aplikacji przed użyciem jakiejkolwiek funkcjonalności IronPDF.

## Jak dodać spis treści i zakładki do PDF?

W tym przykładzie użyję tego [przykładowego PDF-a](/static-assets/ironpdf-java/howto/bookmarks/NovelSample.pdf), aby zastosować spis treści i zakładki. Proces obejmuje załadowanie istniejącego dokumentu PDF i wykorzystanie `BookmarkManager` IronPDF do dodania punktów nawigacyjnych w całym dokumencie.

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

Po załadowaniu tego PDF-a z określonej ścieżki pliku za pomocą klasy [`PdfDocument`.fromFile](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html), pobierz obiekt [`BookmarkManager`](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/bookmark/BookmarkManager.html), aby zacząć dodawać zakładki. Możesz dodawać zakładki na początku lub na końcu kolekcji zakładek, używając metod `addBookMarkAtEnd` i `addBookMarkAtStart`. Te metody zapewniają elastyczność w organizowaniu zakładek zgodnie ze strukturą Twojego dokumentu.

PoradyPamiętaj, że wszystkie indeksy stron stosują indeksowanie od zera.
```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')); } }

Za pomocą powyższego przeglądarki PDF, sprawdź spis treści znajdujący się w górnym lewym rogu większości przeglądarek, aby zobaczyć wszystkie dodane zakładki. Ta struktura zakładek jednej warstwy zapewnia prostą nawigację dla dokumentów z prostymi potrzebami organizacyjnymi.

Jak utworzyć kilka warstw zakładek?

W tym przykładzie, rozpocznij od dodania zakładek tak, jak przy tworzeniu jednej warstwy zakładek. Następnie użyj metody insertBookmark, aby dodać nową zakładkę na nowej warstwie. Pierwszy parametr określa nazwę zakładki, a drugi parametr określa stronę, do której odnośnik ma prowadzić. Aby utworzyć nową warstwę, uczyń nową zakładkę "dzieckiem" istniejącej zakładki, używając trzeciego parametru metody. Ta hierarchiczna struktura pasuje do dokumentów z rozdziałami, sekcjami i podsekcjami.

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 bookmarks at the end
        bookmarks.addBookMarkAtEnd("Title Page", 0);
        bookmarks.addBookMarkAtEnd("Table of Contents", 1);
        bookmarks.addBookMarkAtEnd("Dedication", 2);

        // Insert second layer bookmarks
        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 multiple layer bookmarks
        pdf.saveAs(Path.of("multiLayer.pdf"));
    }
}
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 bookmarks at the end
        bookmarks.addBookMarkAtEnd("Title Page", 0);
        bookmarks.addBookMarkAtEnd("Table of Contents", 1);
        bookmarks.addBookMarkAtEnd("Dedication", 2);

        // Insert second layer bookmarks
        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 multiple layer bookmarks
        pdf.saveAs(Path.of("multiLayer.pdf"));
    }
}
JAVA

Tutaj możesz zobaczyć PDF z naszą nową strukturą drzewa zakładek. Sprawdź spis treści, aby zobaczyć, jak funkcja insertBookmark dodała nową warstwę zakładek. To podejście wielowarstwowe pasuje do dokumentacji technicznej, prac naukowych lub dowolnego dokumentu wymagającego szczegółowej struktury nawigacji.


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

Narzędzie do zakładek IronPDF nie tylko dodaje nowe zakładki, ale także pobiera i wyświetla istniejące. Ta funkcjonalność okazuje się niezbędna przy modyfikowaniu istniejących PDF-ów lub analizowaniu ich struktury. Aby nawigować po zakładkach, najpierw załaduj PDF wykorzystując metodę PdfDocument.fromFile. Następnie uzyskaj dostęp do obiektu BookmarkManager i użyj metody getBookmarks, aby pobrać wszystkie zakładki, łącznie z zakładkami dziećmi. Na koniec, użyj metody get, aby pobrać zakładkę według jej indeksu na liście. Ta funkcjonalność pozwala na programowe badanie i manipulowanie istniejącymi strukturami nawigacyjnymi w PDF-ie.

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
        List<Bookmark> bookmarkList = bookmarks.getBookmarks();

        // Retrieve a specific bookmark by its 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());
        }
    }
}
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
        List<Bookmark> bookmarkList = bookmarks.getBookmarks();

        // Retrieve a specific bookmark by its 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

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

Po pobraniu zakładek, możesz dodawać nowe zakładki na określonych indeksach w dokumencie. Funkcja ta jest przydatna przy aktualizacji istniejących PDF-ów o nowe sekcje lub reorganizacji struktury dokumentu. Aby to osiągnąć, wybierz celowaną zakładkę i użyj metody addNextBookmark, aby dodać nową zakładkę po niej. Na przykład, weź PDF z sekcji 'Dodaj kilka warstw zakładek' i dodaj zakładkę po zakładce 'Trzecia strona'. Możesz także dodać zakładkę dziecko jako głębszą warstwę używając metody addChildBookmark, co pozwala na precyzyjną kontrolę hierarchii nawigacji twojego dokumentu.

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 we modified earlier
        PdfDocument pdf = PdfDocument.fromFile(Path.of("multiLayer.pdf"));

        // Get the BookmarkManager
        BookmarkManager bookmarks = pdf.getBookmark();

        // Retrieve the list of bookmarks
        List<Bookmark> bookmarkList = bookmarks.getBookmarks();

        // Retrieve a specific bookmark by its index
        Bookmark bookmark = bookmarkList.get(5);

        // Add a new bookmark after the specified bookmark
        bookmark.addNextBookmark("Fourth Page", 6);

        // Add another layer to 'Third page' bookmark
        bookmark.addChildBookmark("Section 1", 7);

        // Save the modified PDF
        pdf.saveAs(Path.of("specificIndex.pdf"));
    }
}
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 we modified earlier
        PdfDocument pdf = PdfDocument.fromFile(Path.of("multiLayer.pdf"));

        // Get the BookmarkManager
        BookmarkManager bookmarks = pdf.getBookmark();

        // Retrieve the list of bookmarks
        List<Bookmark> bookmarkList = bookmarks.getBookmarks();

        // Retrieve a specific bookmark by its index
        Bookmark bookmark = bookmarkList.get(5);

        // Add a new bookmark after the specified bookmark
        bookmark.addNextBookmark("Fourth Page", 6);

        // Add another layer to 'Third page' bookmark
        bookmark.addChildBookmark("Section 1", 7);

        // Save the modified PDF
        pdf.saveAs(Path.of("specificIndex.pdf"));
    }
}
JAVA

Zwróć uwagęJeśli scalasz dwa dokumenty PDF, których zakładki mają identyczne nazwy, może to zakłócić samą listę zakładek.

Podczas pracy z zakładkami w złożonych przepływach pracy z PDF-ami, rozważ eksplorację innych funkcji IronPDF, takich jak dzielenie PDF-ów, aby utworzyć mniejsze dokumenty z własnymi strukturami zakładek, lub drukowanie PDF-ów z zachowaną nawigacją zakładek. Dla bardziej zaawansowanych przykładów i pełnych demonstracji kodu, zobacz przykład kodu zakładek w naszej sekcji przykładów.

Często Zadawane Pytania

How do I add bookmarks to a PDF document in Java?

You can add bookmarks to PDF documents using IronPDF's BookmarkManager class. First, load your PDF using PdfDocument.fromFile(), then access the BookmarkManager with pdf.getBookmark(), and add bookmarks using the addBookMarkAtEnd() method specifying the bookmark title and page number.

What are the prerequisites for adding PDF bookmarks programmatically?

To add PDF bookmarks with IronPDF, you need Java 8 or higher, the IronPDF library integrated via Maven or Gradle, and a valid license key configured in your application. The library supports both single-layer and multi-layer bookmark structures.

Can I create multi-level bookmark hierarchies in PDFs?

Yes, IronPDF supports creating both single-layer and multi-layer bookmark structures. You can create hierarchical navigation with parent and child bookmarks using the BookmarkManager class for organizing complex PDF documents.

What is the purpose of PDF bookmarks and outlines?

PDF bookmarks and outlines significantly improve document usability by providing structured navigation. They allow users to jump directly to key sections like a table of contents, which is especially valuable for lengthy documents, reports, or multi-chapter PDFs. IronPDF makes it easy to implement these navigation features programmatically.

What other PDF manipulation features are available besides bookmarking?

Beyond adding bookmarks, IronPDF offers comprehensive PDF manipulation capabilities including merging PDFs, creating forms, adding watermarks, and various other document processing features. These functionalities integrate seamlessly with Java applications for complete PDF management.

How do I save a PDF after adding bookmarks?

After adding bookmarks using IronPDF's BookmarkManager, save the modified PDF document by calling the saveAs() method on your PdfDocument object, specifying the output file path where you want to save the bookmarked PDF.

Darrius Serrant
Full Stack Software Engineer (WebOps)

Darrius Serrant posiada tytuł licencjata z informatyki z Uniwersytetu Miami i pracuje jako Full Stack WebOps Marketing Engineer w Iron Software. Już od młodych lat zainteresował się kodowaniem, postrzegając informatykę jako zarówno tajemniczą, jak i dostępną, co czyni ją doskonałym medium dla kreatywności ...

Czytaj więcej
Gotowy, aby rozpocząć?
Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu?
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.