Comment ajouter des signets PDF et un plan en Java
Inclure des signets PDF dans votre projet Java peut améliorer considérablement l'utilisabilité et la navigation de vos PDF. Les contours dans les PDFs offrent une méthode simple de navigation à l'intérieur du PDF lui-même, vous permettant de naviguer facilement vers des pages clés du document, de la même manière que vous le feriez avec une table des matières.
IronPDF est un outil PDF puissant qui rend la manipulation des fichiers PDF un jeu d'enfant. Son outil de signets vous offre une méthode concise et facile à utiliser pour créer des signets personnalisés pour vos fichiers PDF.
Comment ajouter des signets et des plans au format PDF
- Installez la bibliothèque Java pour ajouter des signets aux PDF
- Utilisez la classe PdfDocument pour charger un fichier PDF existant en Java
- Créez et personnalisez les signets avec la classe BookmarkManager
- Utilisez
addBookMarkAtEnd
pour ajouter des signets à des pages spécifiques du PDF - Enregistrez le document PDF contenant le nouvel aperçu et les signets.
Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit.
Avant de commencer
Vous devrez également vous assurer que votre clé de licence est correctement configurée, car IronPDF doit être sous licence pour le développement.
Ajouter un exemple de contours et de signets
Pour l'exemple d'aujourd'hui, j'utiliserai ce PDF d'exemple pour appliquer le plan et les signets.
Ajouter une seule couche de signets
Après avoir chargé ce PDF depuis le chemin de fichier spécifié en utilisant la classe PdfDocument, nous pouvons commencer à ajouter des signets au document en récupérant l'objet BookmarkManager. Vous pouvez ajouter le signet au début ou à la fin de la collection de signets en utilisant les méthodes addBookMarkAtEnd
et addBookMarkAtStart
.
Conseils
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 {
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf"));
// Get BookmarkManager object
BookmarkManager bookmarks = pdf.getBookmark();
// Add bookmarks
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);
pdf.saveAs(Path.of("bookmarked.pdf"));
}
}
Avec le visualiseur PDF ci-dessus, vous pouvez vérifier 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, tout 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 en utilisant le premier paramètre de la méthode. Le deuxième paramètre spécifie 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 est réalisé en utilisant le 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 {
PdfDocument pdf = PdfDocument.fromFile(Path.of("NovelSample.pdf"));
// Get BookmarkManager object
BookmarkManager bookmarks = pdf.getBookmark();
// Add bookmarks
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");
pdf.saveAs(Path.of("multiLayer.pdf"));
}
}
Ici, vous pouvez voir le PDF avec notre nouvelle structure d'arborescence de signets. Vérifiez vous-même le plan pour voir comment la fonction insertBookmark
a ajouté une nouvelle couche de signets.
Récupération des signets
L'outil de signets d'IronPDF permet non seulement d'ajouter de nouveaux signets, mais aussi de récupérer et de visualiser ceux existants. Pour naviguer à travers les signets, commencez par charger le PDF en utilisant la méthode PdfDocument.fromFile. Ensuite, accédez à 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.
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 {
PdfDocument pdf = PdfDocument.fromFile(Path.of("bookmarked.pdf"));
BookmarkManager bookmarks = pdf.getBookmark();
// Retrieve bookmarks list
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
Bookmark bookmark = bookmarkList.get(2);
}
}
Insérer un signet à un index spécifique
Avec les signets récupérés, vous avez la possibilité d'ajouter de nouveaux signets à des indices 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 niveaux de signets' et ajoutons un signet après le signet 'Troisième page'. Vous pouvez également ajouter un signet enfant comme une couche plus profonde en utilisant 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 {
PdfDocument pdf = PdfDocument.fromFile(Path.of("multiLayer.pdf"));
BookmarkManager bookmarks = pdf.getBookmark();
List<Bookmark> bookmarkList = bookmarks.getBookmarks();
Bookmark bookmark = bookmarkList.get(5);
bookmark.addNextBookmark("Fourth Page", 6);
// Add another layer to 'Third page' bookmark
bookmark.AddChildBookmark("Section 1", 7);
pdf.saveAs(Path.of("specificIndex.pdf"));
}
}