Comment ajouter des signets PDF et un plan en Java

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

par Kye Stuart

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.

Commencez à utiliser IronPDF dans votre projet dès 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 être sous licence pour le développement.

Ajouter un exemple de contours et de signets

Pour l'exemple d'aujourd'hui, je vais utiliser ceciéchantillon PDFappliquer le contour et les signets.

Ajouter une seule couche de signets

Après avoir chargé ce PDF depuis le chemin de fichier spécifié en utilisant leDocument Pdfclasse, nous pouvons commencer à ajouter des signets au document en récupérant leGestionnaire de signets objet. 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
Souvenez-vous que tous les index de page suivent un indexage basé sur 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 {
        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"));
    }
}
JAVA

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 allons utiliser le insérerSignetméthode 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"));
    }
}
JAVA

Ici, vous pouvez voir le PDF avec notre nouvelle structure d'arborescence de signets. Consultez le plan par vous-même pour voir comment la fonctionnalité 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, chargez d'abord le PDF en utilisant lePdfDocument.fromFile méthode. Ensuite, accédez à l'objet BookmarkManager et utilisez le getBookmarksméthode 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 indice 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);
    }
}
JAVA

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 le ajouterProchainSignetméthode 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 sous-signet en tant que 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"));
    }
}
JAVA

A noter
Si vous fusionnez deux documents PDF dont les signets portent des noms identiques, cela peut entraîner une perturbation de la liste des signets elle-même.