Ajouter et supprimer des signets PDF en Java

Utilisez la collection de plans de documents pour gérer les signets par programmation.

Ajouter un signet de niveau supérieur

Utilisez cet exemple lorsque le document doit inclure une seule entrée de plan de niveau supérieur.

  1. Ouvrez le PDF source Document.
  2. Créez un OutlineItemCollection et configurez son titre, son style et son action.
  3. Ajoutez le signet aux plans du document et enregistrez le fichier.
public static void addBookmark(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        OutlineItemCollection pdfOutline = new OutlineItemCollection(document.getOutlines());
        pdfOutline.setTitle("Test Outline");
        pdfOutline.setItalic(true);
        pdfOutline.setBold(true);
        pdfOutline.setAction(new GoToAction(document.getPages().get_Item(1)));

        document.getOutlines().add(pdfOutline);
        document.save(outputFile.toString());
    }
}

Ajouter un signet enfant

Cet exemple crée un signet parent et imbrique un signet enfant en dessous.

  1. Ouvrez le PDF source Document.
  2. Créez des objets parent et enfant OutlineItemCollection.
  3. Ajoutez l’enfant au parent, ajoutez le parent à la collection de plans et enregistrez le document.
public static void addChildBookmark(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        OutlineItemCollection pdfOutline = new OutlineItemCollection(document.getOutlines());
        pdfOutline.setTitle("Parent Outline");
        pdfOutline.setItalic(true);
        pdfOutline.setBold(true);

        OutlineItemCollection pdfChildOutline = new OutlineItemCollection(document.getOutlines());
        pdfChildOutline.setTitle("Child Outline");
        pdfChildOutline.setItalic(true);
        pdfChildOutline.setBold(true);

        pdfOutline.add(pdfChildOutline);
        document.getOutlines().add(pdfOutline);
        document.save(outputFile.toString());
    }
}

Supprimer tous les signets

Utilisez cette approche lorsque la totalité de la collection de plans doit être supprimée du document.

  1. Ouvrez le PDF source Document.
  2. Supprimez la collection de contours complète.
  3. Enregistrez le fichier de sortie nettoyé.
public static void deleteBookmarks(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        document.getOutlines().delete();
        document.save(outputFile.toString());
    }
}

Supprimer un signet spécifique

Utilisez cet exemple lorsqu’un signet nommé doit être supprimé sans effacer toute l’arborescence.

  1. Ouvrez le PDF source Document.
  2. Supprimez le signet par titre de la collection de plans.
  3. Enregistrez le document mis à jour.
public static void deleteBookmark(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        document.getOutlines().delete("Child Outline");
        document.save(outputFile.toString());
    }
}