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
- Ajouter des signets dans des fichiers PDF à l’aide de C++
- Ajouter des signets imbriqués dans les fichiers PDF
- Lire des signets à partir d’un fichier PDF en utilisant C++
- Modifier le titre du signet à l’aide de C++
- Supprimer un signet particulier à l’aide de C++
- Supprimer tous les signets d’un fichier PDF à l’aide de C++
- Obtenez une licence gratuite
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.
- Tout d’abord, créez une instance de la classe PdfBookmarkEditor.
- Chargez le document PDF à l’aide de PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) méthode.
- Créez le signet à l’aide de la méthode PdfBookmarkEditor->CreateBookmarkOfPage(System::String bookmarkName, int32t pageNumber).
- Enregistrez le document PDF en utilisant la méthode PdfBookmarkEditor->Save(System::String destFile).
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");
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.
- Créez une instance de la classe PdfBookmarkEditor.
- Chargez le document PDF à l’aide de PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) méthode.
- Créez des signets à l’aide de la classe Bookmark.
- Ajoutez les signets enfants à l’instance de la classe Bookmarks et définissez-le comme enfant du signet parent à l’aide de bookmark->setChildItems(System::SharedPtr valeur) méthode.
- Ajoutez les signets au document PDF en utilisant PdfBookmarkEditor->CreateBookmarks(System::SharedPtr signet) méthode.
- Enfin, enregistrez le document PDF en utilisant la méthode PdfBookmarkEditor->Save(System::String destFile).
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");
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.
- Créez une instance de la classe PdfBookmarkEditor.
- Chargez le document PDF à l’aide de PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) méthode.
- Récupérez tous les signets à l’aide de la méthode PdfBookmarkEditor->ExtractBookmarks().
- Parcourez les signets pour récupérer des signets individuels.
- Lisez les propriétés des signets.
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.
- Créez une instance de la classe PdfBookmarkEditor.
- Chargez le document PDF à l’aide de PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) méthode.
- Modifiez le titre du signet à l’aide de la méthode PdfBookmarkEditor->ModifyBookmarks(System::String sTitle, System::String dTitle).
- Enregistrez le document PDF en utilisant la méthode PdfBookmarkEditor->Save(System::String destFile).
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.
- Créez une instance de la classe PdfBookmarkEditor.
- Chargez le document PDF à l’aide de PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) méthode.
- Supprimez le signet souhaité à l’aide de la méthode PdfBookmarkEditor->DeleteBookmarks(System::String title).
- Enregistrez le document PDF en utilisant la méthode PdfBookmarkEditor->Save(System::String destFile).
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.
- Créez une instance de la classe PdfBookmarkEditor.
- Chargez le document PDF à l’aide de PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) méthode.
- Supprimez tous les signets à l’aide de la méthode PdfBookmarkEditor->DeleteBookmarks().
- Enregistrez le document PDF en utilisant la méthode PdfBookmarkEditor->Save(System::String destFile).
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.