How to Add PDF Bookmarks and Outline in Java

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

L'intégration de signets PDF dans votre projet Java peut améliorer considérablement la convivialité et la navigation dans vos PDF. Les aperçus dans les PDF fournissent une méthode de navigation facile dans le PDF lui-même, de sorte que vous pouvez facilement naviguer vers les pages clés du document, comme vous le feriez avec une table des matières.

IronPDF est un outil PDF puissant qui facilite le travail avec les fichiers PDF. Son outil de création de signets vous offre une méthode concise et facile à utiliser pour créer des signets personnalisés pour vos fichiers PDF.

Commencez à utiliser IronPDF dans votre projet aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer

Avant de commencer

Vous devrez également vous assurer que votre clé de licence est correctement configurée, car IronPDF doit faire l'objet d'une licence de développement.

Exemple d'ajout de plan et de signets

Pour l'exemple d'aujourd'hui, j'utiliserai ce exemple de PDF pour appliquer le contour et les signets.

Ajouter une seule couche de signets

After loading this PDF from the specified file path using the PdfDocument class, we can start adding bookmarks to the document by retrieving the BookmarkManager object. Vous pouvez ajouter le signet au début ou à la fin de la collection de signets à l'aide des méthodes addBookMarkAtEnd et addBookMarkAtStart.

[{t :(Rappelez-vous que tous les index de page suivent l'indexation à base zéro.)}]]

import java.io.IOException;
import java.nio.file.Path;
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"));
    }
}
import java.io.IOException;
import java.nio.file.Path;
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

Avec la visionneuse PDF ci-dessus, vous pouvez consulter la table des matières, qui se trouve dans le coin supérieur gauche de la plupart des navigateurs, pour voir tous les signets que nous avons ajoutés.

Ajouter plusieurs couches de signets

Dans cet exemple, nous commencerons par ajouter des signets, comme nous l'avons fait lors de la création d'une seule couche de signets. Ensuite, nous utiliserons la méthode insertBookmark pour ajouter un nouveau signet sur une nouvelle couche et lui donner un nom à l'aide du premier paramètre de la méthode. Le deuxième paramètre indique la page vers laquelle le nouveau signet renvoie. Pour créer un nouveau calque, nous faisons du nouveau signet un "enfant" d'un signet existant, ce qui se fait à l'aide du troisième paramètre de la méthode.

import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;

public class Main {
    public static void main(String[] args) throws IOException {
        // 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.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;

public class Main {
    public static void main(String[] args) throws IOException {
        // 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

Voici le PDF avec notre nouvelle structure arborescente de signets. Consultez l'aperçu pour voir comment la fonction insertBookmark a ajouté une nouvelle couche de signets.


Récupération des signets

L'outil de création de signets d'IronPDF permet non seulement d'ajouter de nouveaux signets, mais aussi de récupérer et d'afficher les signets existants. Pour naviguer dans les signets, commencez par charger le PDF à l'aide de la méthode PdfDocument.fromFile. Accédez ensuite à l'objet BookmarkManager et utilisez la méthode getBookmarks pour récupérer tous les signets, y compris les signets enfants. Enfin, utilisez la méthode get pour récupérer un signet en fonction de son index dans la liste.

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 {
        // 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);

        // Example usage of the retrieved bookmark could be added here
    }
}
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 {
        // 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);

        // Example usage of the retrieved bookmark could be added here
    }
}
JAVA

Insérer un signet dans un index spécifique

Avec les signets récupérés, vous avez la possibilité d'ajouter de nouveaux signets à des index spécifiques dans le document. Pour ce faire, sélectionnez le signet ciblé et utilisez la méthode addNextBookmark pour ajouter un nouveau signet après celui-ci. Par exemple, nous prenons le PDF de la section Ajouter plusieurs couches de signets' et ajoutons un signet après le signet Troisième page'. Vous pouvez également ajouter un signet enfant en tant que couche plus profonde à l'aide de la méthode addChildBookmark.

import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
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 {
        // 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.PdfDocument;
import com.ironsoftware.ironpdf.bookmark.Bookmark;
import com.ironsoftware.ironpdf.bookmark.BookmarkManager;

public class Main {
    public static void main(String[] args) throws IOException {
        // 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

[{i :(Si vous fusionnez deux documents PDF dont les signets ont des noms identiques, cela peut entraîner une perturbation dans la liste des signets elle-même.)]]

Questions Fréquemment Posées

Comment puis-je ajouter des signets à un PDF en Java ?

Pour ajouter des signets à un PDF en Java, utilisez la bibliothèque IronPDF. Chargez votre PDF en utilisant la classe PdfDocument, puis utilisez la classe BookmarkManager pour insérer et personnaliser les signets. Enfin, enregistrez le document pour appliquer les modifications.

Quels sont les avantages de l'utilisation des signets dans les documents PDF ?

Les signets dans les documents PDF améliorent grandement la navigation et l'utilisabilité en permettant aux utilisateurs d'accéder directement à des sections importantes, semblables à une table des matières.

Comment créer des signets hiérarchiques dans un PDF en utilisant Java ?

Pour créer des signets hiérarchiques dans un PDF en utilisant Java, utilisez la classe BookmarkManager d'IronPDF. Utilisez la méthode insertBookmark pour ajouter des signets enfants sous des signets existants, créant ainsi plusieurs niveaux.

Quel est le mode recommandé pour configurer la licence IronPDF en Java ?

Configurez votre licence IronPDF en Java en appelant la méthode License.setLicenseKey avec votre clé de licence avant d'utiliser les fonctionnalités PDF pour assurer une fonctionnalité complète.

IronPDF peut-il gérer la récupération des signets PDF existants ?

Oui, IronPDF peut récupérer les signets PDF existants. Chargez le PDF avec la classe PdfDocument, accédez au BookmarkManager, et utilisez la méthode getBookmarks pour lister tous les signets.

Comment puis-je ajouter un signet à une page spécifique dans un PDF en utilisant Java ?

En Java, utilisez la méthode addBookMarkAtEnd d'IronPDF pour ajouter un signet à une page spécifique dans un document PDF. Cela vous permet de cibler et de mettre en évidence des sections clés.

Quelle est l'importance de l'indexation à partir de zéro lors du travail avec les signets PDF ?

L'indexation à partir de zéro est cruciale lorsqu'on travaille avec les signets PDF car les numéros de page commencent à zéro. Par exemple, la première page a l'index 0, ce qui est essentiel pour un placement précis des signets.

Comment enregistrer un PDF modifié avec de nouveaux signets en utilisant IronPDF en Java ?

Après avoir ajouté ou modifié des signets dans un PDF avec IronPDF, enregistrez le document mis à jour en utilisant la méthode saveAs de la classe PdfDocument pour conserver vos modifications.

Que dois-je prendre en compte lors de la fusion de PDF avec des signets en utilisant IronPDF ?

Lors de la fusion de PDF avec des signets en utilisant IronPDF, assurez-vous que les signets ont des noms uniques pour maintenir une liste de signets cohérente et organisée sans conflits.

Comment puis-je ajouter un signet enfant dans un PDF en utilisant IronPDF ?

Pour ajouter un signet enfant dans un PDF en utilisant IronPDF, utilisez la méthode addChildBookmark, qui vous permet de construire une structure de signets hiérarchique plus profonde au sein du document.

IronPDF est-il compatible avec .NET 10 pour les signets et les plans ?

Oui. IronPDF est compatible avec .NET 10. Comme l'indiquent les métadonnées de son package NuGet, les versions telles que 2023.6.10 sont conçues pour net10.0 ainsi que pour les plateformes Android, iOS, navigateurs web, MacCatalyst, macOS, tvOS et Windows, ce qui permet de bénéficier de toutes les fonctionnalités de signets et de plans sous .NET 10. ([nuget.org](https://www.nuget.org/packages/IronPdf/2023.6.10?utm_source=openai))

Darrius Serrant
Ingénieur logiciel Full Stack (WebOps)

Darrius Serrant est titulaire d'un baccalauréat en informatique de l'université de Miami et travaille comme ingénieur marketing WebOps Full Stack chez Iron Software. Attiré par le codage dès son plus jeune âge, il a vu l'informatique comme à la fois mystérieuse et accessible, en faisant le ...

Lire la suite
Prêt à commencer?
Version : 2025.11 vient de sortir