Les signets dans un fichier PDF sont utiles pour marquer les points d’intérêt dans le document. Ceux-ci vous permettent d’accéder rapidement à un point spécifique du document. Vous pourriez vous retrouver dans des situations où vous devez ajouter, lire, modifier ou supprimer des signets dans un fichier PDF par programmation. Pour cela, cet article vous apprendra comment travailler avec des signets dans des fichiers PDF en utilisant C++.

API C++ pour travailler avec des signets dans des fichiers PDF

Aspose.PDF for C++ est une bibliothèque C++ qui vous permet de créer, lire et mettre à jour des documents PDF. De plus, l’API prend en charge l’ajout, la lecture, la modification et la suppression des signets des fichiers PDF. Vous pouvez soit installer l’API via NuGet ou la télécharger directement à partir de la section downloads.

PM> Install-Package Aspose.PDF.Cpp

Ajouter des signets dans des fichiers PDF à l’aide de C++

Voici les étapes pour ajouter un signet dans un fichier PDF.

L’exemple de code suivant montre comment ajouter un signet dans un fichier PDF à l’aide de C++.

// Créer une instance de la classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Charger le document PDF
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Créer le signet
editor->CreateBookmarkOfPage(u"Bookmark for page 1", 1);

// Enregistrez le document PDF
editor->Save(u"OutputDirectory\\AddBookmark_out.pdf");
Sortie générée par l'exemple de code

Sortie générée par l’exemple de code

Ajouter des signets imbriqués dans les fichiers PDF

Vous pouvez également ajouter des signets imbriqués à l’aide de l’API Aspose.PDF for C++. Voici les étapes pour ajouter des signets imbriqués.

L’exemple de code suivant montre comment ajouter des signets imbriqués dans un fichier PDF à l’aide de C++.

// Créer une instance de la classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Charger le document PDF
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Créer le 1er marque-page enfant
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm1 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm1->set_PageNumber(1);
bm1->set_Title(u"First child");

// Créer un deuxième marque-page enfant
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm2 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm2->set_PageNumber(2);
bm2->set_Title(u"Second child");

// Créer un signet parent
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm->set_Action(u"GoTo");
bm->set_PageNumber(1);
bm->set_Title(u"Parent");

// Définir les signets enfants
System::SharedPtr<Aspose::Pdf::Facades::Bookmarks> bms = System::MakeObject<Aspose::Pdf::Facades::Bookmarks>();
bms->Add(bm1);
bms->Add(bm2);
bm->set_ChildItem(bms);

// Ajouter les signets au fichier PDF
editor->CreateBookmarks(bm);

// Enregistrez le document PDF
editor->Save(u"OutputDirectory\\AddChildBookmark_out.pdf");
Sortie générée par l'exemple de code

Sortie générée par l’exemple de code

Lire des signets à partir d’un fichier PDF en utilisant C++

Pour lire les signets, utilisez la méthode PdfBookmarkEditor->ExtractBookmarks(). Voici les étapes pour lire les signets à partir d’un fichier PDF.

L’exemple de code suivant montre comment lire des signets à partir d’un fichier PDF à l’aide de C++.

// Créer une instance de la classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Charger le document PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Récupérer tous les signets
System::SharedPtr <Bookmarks> bms = editor->ExtractBookmarks();

// Boucle à travers les signets
for (System::SharedPtr<Bookmark> bm : bms) {
	
	// Afficher le titre du signet
	Console::WriteLine(bm->get_Title());

	// Afficher la destination du signet
	Console::WriteLine(bm->get_Destination());
}

Modifier le titre du signet à l’aide de C++

Voici les étapes pour modifier le titre d’un signet existant dans un fichier PDF.

L’exemple de code suivant montre comment modifier le titre d’un signet existant dans un fichier PDF.

// Créer une instance de la classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Charger le document PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Modifier le titre du signet
editor->ModifyBookmarks(u"bookmark for page 1", u"Page 1 Bookmark");

// Enregistrez le document PDF
editor->Save(u"OutputDirectory\\ModifyBookmark_out.pdf");

Supprimer un signet particulier à l’aide de C++

L’API fournit la méthode PdfBookmarkEditor->DeleteBookmarks(System::String title) pour supprimer un signet particulier d’un fichier PDF. Voici les étapes pour supprimer un signet spécifique.

L’exemple de code suivant montre comment supprimer un signet particulier à l’aide de C++.

// Créer une instance de la classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Charger le document PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Supprimer un signet particulier
editor->DeleteBookmarks(u"bookmark for page 1");

// Enregistrez le document PDF
editor->Save(u"OutputDirectory\\DeleteParticularBookmark_out.pdf");

Supprimer tous les signets d’un fichier PDF à l’aide de C++

Au lieu de supprimer les signets un par un, vous pouvez supprimer tous les signets à la fois en utilisant la méthode PdfBookmarkEditor->DeleteBookmarks(). Voici les étapes pour supprimer tous les signets dans un fichier PDF.

Voici un exemple de code pour supprimer tous les signets d’un fichier PDF.

// Créer une instance de la classe PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();

// Charger le document PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");

// Supprimer tous les signets
editor->DeleteBookmarks();

// Enregistrez le document PDF
editor->Save(u"OutputDirectory\\DeleteAllBookmarks_out.pdf");

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limitation d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris à utiliser des signets dans des fichiers PDF à l’aide de C++. Plus précisément, vous avez appris à ajouter, lire, modifier et supprimer des signets dans un fichier PDF. De plus, vous avez vu comment ajouter des signets imbriqués à l’aide de l’API Aspose.PDF for C++. L’API fournit de nombreuses fonctionnalités supplémentaires pour travailler avec des fichiers PDF que vous pouvez explorer en détail en utilisant la documentation officielle. Si vous avez des questions, n’hésitez pas à nous contacter sur le forum d’assistance gratuit.

Voir également