Comment ajouter des signets et un plan au format PDF en Java

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

La bibliothèque Java d'IronPDF vous permet d'ajouter par programmation des signets et des contours aux documents PDF à l'aide de la classe BookmarkManager, en prenant en charge les structures de signets à une ou plusieurs couches avec des points de navigation personnalisables.

Démarrage rapide : ajouter des signets PDF en Java

  1. Installez la bibliothèque IronPDF for Java et définissez votre clé de licence
  2. Chargez votre PDF à l'aide de PdfDocument.fromFile()
  3. Obtenez le BookmarkManager avec pdf.getBookmark()
  4. Ajoutez des signets en utilisant addBookMarkAtEnd("Title", pageNumber)
  5. Enregistrez le PDF avec pdf.saveAs()

```java :title=Démarrage rapide PdfDocument pdf = PdfDocument.fromFile(Path.of("document.pdf")) ; BookmarkManager bookmarks = pdf.getBookmark() ; bookmarks.addBookMarkAtEnd("Chapitre 1", 0) ; pdf.saveAs(Path.of("bookmarked.pdf")) ;


Les signets PDF améliorent considérablement la convivialité et la navigation dans vos documents. Les plans fournissent une navigation structurée dans les PDF, permettant aux utilisateurs d'accéder directement aux sections clés, comme dans une table des matières. Cette fonctionnalité s'avère essentielle lorsque l'on travaille avec de longs documents, des rapports ou des PDF à plusieurs chapitres qui nécessitent une navigation organisée.

IronPDF simplifie la manipulation des fichiers PDF dans les applications Java. Sa fonctionnalité de création de signets offre des méthodes simples pour créer des signets personnalisés dans les fichiers PDF. La bibliothèque s'intègre de manière transparente aux applications Java et prend en charge diverses fonctionnalités de manipulation des PDF au-delà de la mise en signet, notamment [fusionner des PDF](https://ironpdf.com/java/how-to/java-merge-pdf-tutorial/), [créer des formulaires](https://ironpdf.com/java/how-to/create-forms/), et [ajouter des filigranes](https://ironpdf.com/java/how-to/custom-watermark/).

<div class="hsg-featured-snippet">
    <h2>Comment ajouter des signets et des contours au PDF</h2>
    <ol>
        <li><a href="https://ironpdf.com/java/#download-modal">Installer une bibliothèque Java pour ajouter des signets aux PDF</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>Enregistrer le document PDF contenant le nouveau contour et les signets</li>
    </ol>
</div>

## De quoi ai-je besoin avant de commencer?

Avant de mettre en œuvre les signets PDF, assurez-vous d'avoir correctement configuré IronPDF pour Java dans votre projet. La bibliothèque nécessite Java 8 ou une version plus récente et peut être facilement intégrée à l'aide de Maven ou Gradle. Vous devrez ajouter la dépendance IronPDF au fichier de compilation de votre projet. Pour des instructions de configuration détaillées, reportez-vous à la [Vue d'ensemble de la prise en main](https://ironpdf.com/java/docs/).

Vous devez également vous assurer que votre clé de licence est configurée correctement, car IronPDF nécessite une licence pour le développement. Pour des informations complètes sur les options de licence et la mise en œuvre, consultez le [guide des licences](https://ironpdf.com/java/get-started/license-keys/). Définissez la clé de licence au début de votre application avant d'utiliser toute fonctionnalité d'IronPDF.

## Comment ajouter un plan et des signets à un PDF?

Pour cet exemple, j'utiliserai ce [fichier PDF](/static-assets/ironpdf-java/howto/bookmarks/NovelSample.pdf) pour appliquer le plan et les signets. Le processus consiste à charger un document PDF existant et à utiliser le `BookmarkManager` d'IronPDF pour ajouter des points de navigation dans le document.

### Comment ajouter une seule couche de signets?

<TODO : Ajouter une image ici -->
<!-- ![Sortie montrant les résultats de l'exemple d'ajout de contours et de signets dans IronPDF](/static-assets/images/TODO/add-outline-bookmarks-example-code_output.webp) -->
<!-- Description : Capture d'écran montrant la sortie ou les résultats de l'exécution d'un code -->

Après avoir chargé ce PDF à partir du chemin de fichier spécifié à l'aide de la classe [`PdfDocument`.fromFile](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html), récupérez l'objet [`BookmarkManager`](https://ironpdf.com/java/object-reference/api/com/ironsoftware/ironpdf/bookmark/BookmarkManager.html) pour commencer à ajouter des signets. Vous pouvez ajouter des signets au début ou à la fin de la collection de signets à l'aide des méthodes `addBookMarkAtEnd` et `addBookMarkAtStart`. Ces méthodes offrent une certaine souplesse dans l'organisation de vos signets en fonction de la structure de votre document.

ConseilsN'oubliez pas que tous les index de page suivent l'indexation à base zéro.
```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")) ; } }

Avec la visionneuse PDF ci-dessus, consultez la table des matières située dans le coin supérieur gauche de la plupart des navigateurs pour voir tous les signets ajoutés. Cette structure de signets à une seule couche permet une navigation directe pour les documents dont les besoins organisationnels sont simples.

Comment créer plusieurs couches de signets?

Dans cet exemple, commencez par ajouter des signets comme si vous créiez une seule couche de signets. Ensuite, utilisez la méthode insertBookmark pour ajouter un nouveau signet sur une nouvelle couche. Le premier paramètre spécifie le nom du signet et le second paramètre spécifie la page à laquelle le signet renvoie. Pour créer un nouveau calque, faites du nouveau signet un "enfant" d'un signet existant en utilisant le troisième paramètre de la méthode. Cette structure hiérarchique convient aux documents comportant des chapitres, des sections et des sous-sections.

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

Ici, vous pouvez voir 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. Cette approche multicouche convient à la documentation technique, aux articles universitaires ou à tout document nécessitant une structure de navigation détaillée.


Comment récupérer les signets existants d'un PDF?

<TODO : Ajouter une image ici -->

L'outil de signets d'IronPDF n'ajoute pas seulement de nouveaux signets mais permet également de récupérer et de visualiser les existants. Cette fonctionnalité s'avère essentielle lorsqu'il s'agit de modifier des PDF existants ou d'analyser leur structure. 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. Cette capacité permet l'inspection et la manipulation programmatiques des structures de navigation PDF existantes.

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

Comment insérer un signet dans un index spécifique?

<TODO : Ajouter une image ici -->

Avec les signets récupérés, vous pouvez ajouter de nouveaux signets à des index spécifiques dans le document. Cette fonctionnalité est utile pour mettre à jour des PDF existants en y ajoutant de nouvelles sections ou en réorganisant la structure du 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, prenez le PDF de la section Ajouter plusieurs couches de signets' et ajoutez 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, ce qui permet un contrôle précis de la hiérarchie de navigation de votre document.

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

Veuillez noterSi vous fusionnez deux documents PDF dont les signets ont des noms identiques, cela peut perturber la liste des signets elle-même.

Lorsque vous travaillez avec des signets dans des flux de travail PDF complexes, pensez à explorer les autres fonctionnalités d'IronPDF, telles que la division de PDF pour créer des documents plus petits avec leurs propres structures de signets, ou l'impression de PDF avec la navigation des signets intacte. Pour des exemples plus avancés et des démonstrations de code complètes, consultez l'exemple de code de signets dans notre section d'exemples.

Questions Fréquemment Posées

Comment ajouter des signets à un document PDF en Java ?

Vous pouvez ajouter des signets aux documents PDF à l'aide de la classe BookmarkManager d'IronPDF. Tout d'abord, chargez votre PDF en utilisant PdfDocument.fromFile(), puis accédez au BookmarkManager avec pdf.getBookmark(), et ajoutez des signets en utilisant la méthode addBookMarkAtEnd() en spécifiant le titre du signet et le numéro de la page.

Quelles sont les conditions préalables à l'ajout programmatique de signets PDF ?

Pour ajouter des signets PDF avec IronPDF, vous avez besoin de Java 8 ou d'une version plus récente, de la bibliothèque IronPDF intégrée via Maven ou Gradle, et d'une clé de licence valide configurée dans votre application. La bibliothèque prend en charge les structures de signets à une ou plusieurs couches.

Puis-je créer des hiérarchies de signets à plusieurs niveaux dans les PDF ?

Oui, IronPDF permet de créer des structures de signets à une ou plusieurs couches. Vous pouvez créer une navigation hiérarchique avec des signets parents et enfants en utilisant la classe BookmarkManager pour organiser des documents PDF complexes.

À quoi servent les signets et les aperçus de documents PDF ?

Les signets et les aperçus de documents PDF améliorent considérablement la convivialité des documents en offrant une navigation structurée. Ils permettent aux utilisateurs d'accéder directement à des sections clés comme la table des matières, ce qui est particulièrement utile pour les documents longs, les rapports ou les PDF à plusieurs chapitres. IronPDF facilite la mise en œuvre programmatique de ces fonctions de navigation.

Quelles sont les autres fonctions de manipulation de PDF disponibles en plus de la mise en signet ?

Au-delà de l'ajout de signets, IronPDF offre des fonctionnalités complètes de manipulation de PDF, notamment la fusion de PDF, la création de formulaires, l'ajout de filigranes et diverses autres fonctionnalités de traitement de documents. Ces fonctionnalités s'intègrent parfaitement aux applications Java pour une gestion complète des PDF.

Comment enregistrer un PDF après y avoir ajouté des signets ?

Après avoir ajouté des signets à l'aide du gestionnaire de signets d'IronPdf, enregistrez le document PDF modifié en appelant la méthode saveAs() sur votre objet PdfDocument, en spécifiant le chemin du fichier de sortie où vous souhaitez enregistrer le PDF marqué de signets.

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.12 vient de sortir