Comment ajouter des signets et un plan au format PDF en Java
La bibliothèque Java d'IronPDF vous permet d'ajouter par programmation des signets et des plans aux documents PDF à l'aide de la classe BookmarkManager, prenant en charge les structures de signets à une seule couche et à plusieurs couches avec des points de navigation personnalisables.
Démarrage rapide : Ajouter des signets PDF en Java
- Installez la bibliothèque IronPDF for Java et définissez votre clé de licence
- Chargez votre PDF en utilisant
PdfDocument.fromFile() - Obtenez le
BookmarkManageravecpdf.getBookmark() - Ajoutez des signets en utilisant
addBookMarkAtEnd("Title", pageNumber) - 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">
<h3>Comment ajouter des signets et des contours au PDF</h3>
<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 **`PdfDocument`** class to load an existing PDF file in Java</li>
<li>Create and customize the bookmarks with the **`BookmarkManager`** 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 for 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 IronPDF's `BookmarkManager` pour ajouter des points de navigation dans tout le document.
### Comment ajouter une seule couche de signets?
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 en utilisant les 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 pages suivent une indexation à partir de 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 un nouveau calque. 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"));
}
}
Ici, vous pouvez voir le PDF avec notre nouvelle structure arborescente de signets. Consultez le plan pour voir comment la fonctionnalité 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?
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, chargez d'abord le PDF en utilisant 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 par son index dans la liste. Cette fonctionnalité 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());
}
}
}
Comment insérer un signet dans un index spécifique?
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 comme couche plus profonde en utilisant la méthode addChildBookmark, permettant un contrôle précis sur 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"));
}
}
Si vous fusionnez deux documents PDF dont les signets portent 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.


