Comment ajouter des signets PDF et un plan en Java

Chaknith Bin
Chaknith Bin
septembre 18, 2024
Mise à jour décembre 15, 2024
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

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, 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
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 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"));
    }
}
JAVA

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);
    }
}
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 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"));
    }
}
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.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.