Los marcadores en un archivo PDF son útiles para marcar puntos de interés en el documento. Estos le permiten saltar rápidamente a un punto específico del documento. Es posible que se encuentre en situaciones en las que necesite agregar, leer, modificar o eliminar marcadores en un archivo PDF mediante programación. Para eso, este artículo te enseñará cómo trabajar con marcadores en archivos PDF usando C++.
- API de C++ para trabajar con marcadores en archivos PDF
- Agregar marcadores en archivos PDF usando C++
- Agregar marcadores anidados en archivos PDF
- Leer marcadores de un archivo PDF usando C++
- Modificar el título del marcador usando C++
- Eliminar un marcador particular usando C++
- Eliminar todos los marcadores en un archivo PDF usando C++
- Obtenga una licencia gratis
API de C++ para trabajar con marcadores en archivos PDF
Aspose.PDF for C++ es una biblioteca de C++ que le permite crear, leer y actualizar documentos PDF. Además, la API admite agregar, leer, modificar y eliminar marcadores de archivos PDF. Puede instalar la API a través de NuGet o descargarla directamente desde la sección descargas.
PM> Install-Package Aspose.PDF.Cpp
Agregar marcadores en archivos PDF usando C++
Los siguientes son los pasos para agregar un marcador en un archivo PDF.
- En primer lugar, cree una instancia de la clase PdfBookmarkEditor.
- Cargue el documento PDF usando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) método.
- Cree el marcador usando el método PdfBookmarkEditor->CreateBookmarkOfPage(System::String bookmarkName, int32t pageNumber).
- Guarde el documento PDF utilizando el método PdfBookmarkEditor->Save(System::String destFile).
El siguiente código de ejemplo demuestra cómo agregar un marcador en un archivo PDF usando C++.
// Crear una instancia de la clase PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Cargue el documento PDF
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");
// Crear el marcador
editor->CreateBookmarkOfPage(u"Bookmark for page 1", 1);
// Guardar el documento PDF
editor->Save(u"OutputDirectory\\AddBookmark_out.pdf");
Agregar marcadores anidados en archivos PDF
También puede agregar marcadores anidados mediante la API de Aspose.PDF for C++. Los siguientes son los pasos para agregar marcadores anidados.
- Cree una instancia de la clase PdfBookmarkEditor.
- Cargue el documento PDF usando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) método.
- Crea marcadores usando la clase Bookmark.
- Agregue los marcadores secundarios a la instancia de la clase Bookmarks y configúrelo como un elemento secundario del marcador principal mediante bookmark->setChildItems(System::SharedPtr valor) método.
- Agregue los marcadores al documento PDF usando PdfBookmarkEditor->CreateBookmarks(System::SharedPtr marcador) método.
- Finalmente, guarde el documento PDF utilizando el método PdfBookmarkEditor->Save(System::String destFile).
El siguiente código de ejemplo muestra cómo agregar marcadores anidados en un archivo PDF usando C++.
// Crear una instancia de la clase PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Cargue el documento PDF
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");
// Crear marcador del primer hijo
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm1 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm1->set_PageNumber(1);
bm1->set_Title(u"First child");
// Crear segundo marcador secundario
System::SharedPtr<Aspose::Pdf::Facades::Bookmark> bm2 = System::MakeObject<Aspose::Pdf::Facades::Bookmark>();
bm2->set_PageNumber(2);
bm2->set_Title(u"Second child");
// Crear marcador principal
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");
// Establecer los marcadores secundarios
System::SharedPtr<Aspose::Pdf::Facades::Bookmarks> bms = System::MakeObject<Aspose::Pdf::Facades::Bookmarks>();
bms->Add(bm1);
bms->Add(bm2);
bm->set_ChildItem(bms);
// Agregar los marcadores al archivo PDF
editor->CreateBookmarks(bm);
// Guardar el documento PDF
editor->Save(u"OutputDirectory\\AddChildBookmark_out.pdf");
Leer marcadores de un archivo PDF usando C++
Para leer los marcadores, utilice el método PdfBookmarkEditor->ExtractBookmarks(). Los siguientes son los pasos para leer marcadores de un archivo PDF.
- Cree una instancia de la clase PdfBookmarkEditor.
- Cargue el documento PDF usando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) método.
- Recupere todos los marcadores utilizando el método PdfBookmarkEditor->ExtractBookmarks().
- Recorra los marcadores para recuperar marcadores individuales.
- Lea las propiedades de los marcadores.
El siguiente código de ejemplo muestra cómo leer marcadores de un archivo PDF usando C++.
// Crear una instancia de la clase PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Cargue el documento PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// Recuperar todos los Marcadores
System::SharedPtr <Bookmarks> bms = editor->ExtractBookmarks();
// Bucle a través de los marcadores
for (System::SharedPtr<Bookmark> bm : bms) {
// Mostrar el título del marcador
Console::WriteLine(bm->get_Title());
// Mostrar el destino del marcador
Console::WriteLine(bm->get_Destination());
}
Modificar el título del marcador usando C++
Los siguientes son los pasos para modificar el título de un marcador existente en un archivo PDF.
- Cree una instancia de la clase PdfBookmarkEditor.
- Cargue el documento PDF usando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) método.
- Modifique el título del marcador utilizando el método PdfBookmarkEditor->ModifyBookmarks(System::String sTitle, System::String dTitle).
- Guarde el documento PDF usando el método PdfBookmarkEditor->Save(System::String destFile).
El siguiente código de ejemplo muestra cómo modificar el título de un marcador existente en un archivo PDF.
// Crear una instancia de la clase PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Cargue el documento PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// Modificar título de marcador
editor->ModifyBookmarks(u"bookmark for page 1", u"Page 1 Bookmark");
// Guardar el documento PDF
editor->Save(u"OutputDirectory\\ModifyBookmark_out.pdf");
Eliminar un marcador particular usando C++
La API proporciona el método PdfBookmarkEditor->DeleteBookmarks(System::String title) para eliminar un marcador particular de un archivo PDF. Los siguientes son los pasos para eliminar un marcador específico.
- Cree una instancia de la clase PdfBookmarkEditor.
- Cargue el documento PDF usando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) método.
- Elimine el marcador deseado utilizando el método PdfBookmarkEditor->DeleteBookmarks(System::String title).
- Guarde el documento PDF utilizando el método PdfBookmarkEditor->Save(System::String destFile).
El siguiente código de ejemplo muestra cómo eliminar un marcador en particular usando C++.
// Crear una instancia de la clase PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Cargue el documento PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// Eliminar un marcador en particular
editor->DeleteBookmarks(u"bookmark for page 1");
// Guardar el documento PDF
editor->Save(u"OutputDirectory\\DeleteParticularBookmark_out.pdf");
Eliminar todos los marcadores en un archivo PDF usando C++
En lugar de eliminar los marcadores de uno en uno, puede eliminar todos los marcadores a la vez mediante el método PdfBookmarkEditor->DeleteBookmarks(). Los siguientes son los pasos para eliminar todos los marcadores en un archivo PDF.
- Cree una instancia de la clase PdfBookmarkEditor.
- Cargue el documento PDF usando PdfBookmarkEditor->BindPdf(System::SharedPtrAspose::Pdf::Document srcDoc) método.
- Elimine todos los marcadores usando el método PdfBookmarkEditor->DeleteBookmarks().
- Guarde el documento PDF usando el método PdfBookmarkEditor->Save(System::String destFile).
El siguiente es el código de muestra para eliminar todos los marcadores en un archivo PDF.
// Crear una instancia de la clase PdfBookmarkEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfBookmarkEditor> editor = System::MakeObject<Aspose::Pdf::Facades::PdfBookmarkEditor>();
// Cargue el documento PDF
editor->BindPdf(u"SourceDirectory\\BookmarkSample.pdf");
// Eliminar todos los marcadores
editor->DeleteBookmarks();
// Guardar el documento PDF
editor->Save(u"OutputDirectory\\DeleteAllBookmarks_out.pdf");
Obtenga una licencia gratis
Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.
Conclusión
En este artículo, ha aprendido a trabajar con marcadores en archivos PDF utilizando C++. Específicamente, ha aprendido a agregar, leer, modificar y eliminar marcadores en un archivo PDF. Además, ha visto cómo agregar marcadores anidados utilizando Aspose.PDF for C++. La API proporciona muchas funciones adicionales para trabajar con archivos PDF que puede explorar en detalle utilizando la documentación oficial. Si tiene alguna pregunta, no dude en contactarnos en el foro de soporte gratuito.