Añadir y Eliminar un Marcador
Añadir un Marcador a un Documento PDF
Los marcadores se mantienen en la colección OutlineItemCollection del objeto Documento, que a su vez está en la colección OutlineCollection.
Para añadir un marcador a un PDF:
- Abre un documento PDF usando el objeto Document.
- Crea un marcador y define sus propiedades.
- Agregue la colección OutlineItemCollection a la colección Outlines.
El siguiente fragmento de código le muestra cómo agregar un marcador en un documento PDF.
void AddBookmarks() {
String _dataDir("C:\\Samples\\Bookmarks\\");
auto pdfDocument = MakeObject<Document>(_dataDir + u"AddBookmark.pdf");
// Crear un objeto marcador
auto pdfOutline = MakeObject<OutlineItemCollection>(pdfDocument->get_Outlines());
pdfOutline->set_Title(u"Test Outline");
pdfOutline->set_Italic(true);
pdfOutline->set_Bold(true);
// Establecer el número de página de destino
pdfOutline->set_Action(MakeObject<Aspose::Pdf::Annotations::GoToAction>(pdfDocument->get_Pages()->idx_get(2)));
// Agregar un marcador en la colección de esquemas del documento.
pdfDocument->get_Outlines()->Add(pdfOutline);
// Guardar el documento actualizado
pdfDocument->Save(_dataDir + u"AddBookmark_out.pdf");
}
Agregar un marcador hijo al documento PDF
Los marcadores pueden anidarse, indicando una relación jerárquica con marcadores padre e hijo. Este artículo explica cómo añadir un marcador secundario, es decir, un marcador de segundo nivel, a un PDF.
Para añadir un marcador secundario a un archivo PDF, primero añada un marcador principal:
- Abra un documento.
- Añada un marcador a la OutlineItemCollection, definiendo sus propiedades.
- Añada la OutlineItemCollection a la colección OutlineCollection del objeto Document.
El marcador secundario se crea igual que el marcador principal, explicado anteriormente, pero se añade a la colección de Contornos del marcador principal.
Los siguientes fragmentos de código muestran cómo añadir un marcador secundario a un documento PDF.
void AddChildBookmark() {
String _dataDir("C:\\Samples\\Bookmarks\\");
// Open document
auto pdfDocument = MakeObject<Document>(_dataDir + u"AddChildBookmark.pdf");
// Create a parent bookmark object
auto pdfOutline = MakeObject<OutlineItemCollection>(pdfDocument->get_Outlines());
pdfOutline->set_Title(u"Parent Outline");
pdfOutline->set_Italic(true);
pdfOutline->set_Bold(true);
// Create a child bookmark object
auto pdfChildOutline = MakeObject<OutlineItemCollection>(pdfDocument->get_Outlines());
pdfChildOutline->set_Title(u"Child Outline");
pdfChildOutline->set_Italic(true);
pdfChildOutline->set_Bold(true);
// Add child bookmark in parent bookmark's collection
pdfOutline->Add(pdfChildOutline);
// Add parent bookmark in the document's outline collection.
pdfDocument->get_Outlines()->Add(pdfOutline);
// Save output
pdfDocument->Save(_dataDir + u"AddChildBookmark_out.pdf");
}
Eliminar todos los marcadores de un documento PDF
Todos los marcadores en un PDF se encuentran en la colección OutlineCollection. Este artículo explica cómo eliminar todos los marcadores de un archivo PDF.
Para eliminar todos los marcadores de un archivo PDF:
- Llame al método Delete de la colección OutlineCollection.
- Guarde el archivo modificado usando el método Save del objeto Document.
Los siguientes fragmentos de código muestran cómo eliminar todos los marcadores de un documento PDF.
void DeleteAllBookmarksFromPDFDocument() {
String _dataDir("C:\\Samples\\Bookmarks\\");
// Abrir documento
auto pdfDocument = MakeObject<Document>(_dataDir + u"DeleteAllBookmarks.pdf");
// Eliminar todos los marcadores
pdfDocument->get_Outlines()->Delete();
// Guardar archivo actualizado
pdfDocument->Save(_dataDir + u"DeleteAllBookmarks_out.pdf");
}
Eliminar un marcador particular de un documento PDF
Eliminar todos los adjuntos del documento PDF mostró cómo eliminar todos los adjuntos de un archivo PDF. También es posible eliminar solo adjuntos específicos.
Para eliminar un marcador específico de un archivo PDF:
- Pase el título del marcador como parámetro al método Delete de la colección OutlineCollection.
- Luego guarde el archivo actualizado con el método Save del objeto Document.
La clase Document proporciona la colección OutlineCollection. El método Delete elimina cualquier marcador con el título pasado al método.
Los siguientes fragmentos de código muestran cómo eliminar un marcador específico del documento PDF.
void DeleteParticularBookmarkPDFDocument() {
String _dataDir("C:\\Samples\\Bookmarks\\");
// Abrir documento
auto pdfDocument = MakeObject<Document>(_dataDir + u"DeleteParticularBookmark.pdf");
// Eliminar marcador específico por título
pdfDocument->get_Outlines()->Delete(u"Child Outline");
// Guardar archivo actualizado
pdfDocument->Save(_dataDir + u"DeleteParticularBookmark_out.pdf");
}