Trabajar con anotaciones en archivos PDF usando C++

Las anotaciones son objetos adicionales que se pueden agregar a los documentos PDF. Las anotaciones pueden ser útiles en escenarios como agregar información contextual al documento. Como los archivos PDF no se pueden editar fácilmente, las anotaciones brindan una opción para agregar información adicional al documento. En este artículo, aprenderá a trabajar con anotaciones en archivos PDF usando C++.

API de C++ para trabajar con anotaciones 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 trabajar con anotaciones en 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

Leer anotaciones en archivos PDF

Los siguientes son los pasos para leer anotaciones en archivos PDF.

El siguiente es el código de muestra para leer anotaciones en archivos PDF usando C++.

// Crear una instancia de la clase PdfAnnotationEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();

// Cargue el archivo PDF de muestra
annotationEditor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Crear una matriz de tipos de anotaciones
System::ArrayPtr<Aspose::Pdf::Annotations::AnnotationType> annotationTypes = System::MakeArray<Aspose::Pdf::Annotations::AnnotationType>({ Aspose::Pdf::Annotations::AnnotationType::Text, Aspose::Pdf::Annotations::AnnotationType::Highlight });

// Extraer anotaciones
System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<Aspose::Pdf::Annotations::Annotation>>> annotationList = annotationEditor->ExtractAnnotations(1, 2, annotationTypes);

// Recorrer las anotaciones
for (System::SharedPtr<Aspose::Pdf::Annotations::Annotation> annotation : annotationList)
{
	// Mostrar contenido de anotaciones
	Console::WriteLine(annotation->get_Contents());
}

Agregar anotaciones a archivos PDF

Los siguientes son los pasos para agregar anotaciones a archivos PDF.

El siguiente es el código de muestra para agregar anotaciones a archivos PDF usando C++.

// Crear una instancia de la clase PdfContentEditor
auto editor = MakeObject<Facades::PdfContentEditor>();

// Cargue el archivo PDF de muestra
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Crear anotación
editor->CreateText(System::Drawing::Rectangle(400, 700, 100, 100), u"Title", u"Welcome to Aspose", true, u"Comment", 1);

// Guardar archivo PDF
editor->Save(u"OutputDirectory\\AnnotationSample.pdf");

La siguiente es la imagen del archivo guardado por el código de muestra.

Anotación añadida al archivo PDF

Imagen que muestra la anotación

Modificar anotaciones en archivos PDF usando C++

Los siguientes son los pasos para modificar anotaciones en archivos PDF.

El siguiente es el código de muestra para modificar anotaciones en archivos PDF usando C++.

// Cree una instancia del archivo PDF de muestra
auto document = MakeObject <Aspose::Pdf::Document>(u"SourceDirectory\\AnnotationSample.pdf");

// Crear una instancia de la clase PdfAnnotationEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();

// Cargue el documento PDF de muestra
annotationEditor->BindPdf(document);

// Crear un objeto de anotación
System::SharedPtr<Aspose::Pdf::Annotations::TextAnnotation> annotation = System::MakeObject<Aspose::Pdf::Annotations::TextAnnotation>(document->get_Pages()->idx_get(1), MakeObject<Aspose::Pdf::Rectangle>(200, 400, 400, 600));

// Establecer fecha de modificación
annotation->set_Modified(System::DateTime::get_Now());

// Establecer título
annotation->set_Title(u"NEW AUTHOR");

// Establecer contenido
annotation->set_Contents(u"NEW CONTENTS");

// Establecer asunto
annotation->set_Subject(u"NEW SUBJECT");

// Establecer bandera abierta
annotation->set_Open(true);

// Modificar anotación
annotationEditor->ModifyAnnotations(1, 1, annotation);

// Guardar el documento
annotationEditor->Save(u"OutputDirectory\\AnnotationSample_out.pdf");

Eliminar anotaciones de archivos PDF

Aspose.PDF for C++ ofrece las siguientes opciones para eliminar las anotaciones de los archivos PDF.

Eliminar una anotación específica

Los siguientes son los pasos para eliminar una anotación específica de un archivo PDF.

El siguiente es el código de muestra para eliminar una anotación específica de un archivo PDF usando C++.

// Crear una instancia de la clase PdfAnnotationEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();
// Cargar un documento PDF existente
annotationEditor->BindPdf(u"SourceDirectory\\AnnotationSample.pdf");
// Eliminar anotación por nombre
annotationEditor->DeleteAnnotation(u"4df2cf36-d961-4d83-a39e-4b0069f97e0b");
// Guardar el documento
annotationEditor->Save(u"OutputDirectory\\AnnotationSample_out.pdf");

Eliminación de anotaciones por tipo

Los siguientes son los pasos para eliminar anotaciones por tipo de archivos PDF.

El siguiente es el código de muestra para eliminar anotaciones por tipo de archivos PDF usando C++.

// Crear una instancia de la clase PdfAnnotationEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();
// Cargar un documento PDF existente
annotationEditor->BindPdf(u"SourceDirectory\\AnnotationSample.pdf");
// Eliminar anotaciones de texto
annotationEditor->DeleteAnnotations(u"Text");
// Guardar el documento
annotationEditor->Save(u"OutputDirectory\\AnnotationSample_out.pdf");

Eliminar todas las anotaciones

Los siguientes son los pasos para eliminar todas las anotaciones de los archivos PDF.

El siguiente es el código de muestra para eliminar todas las anotaciones de los archivos PDF usando C++.

// Crear una instancia de la clase PdfAnnotationEditor
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();
// Cargar un documento PDF existente
annotationEditor->BindPdf(u"SourceDirectory\\AnnotationSample.pdf");
// Eliminar todas las anotaciones
annotationEditor->DeleteAnnotations();
// Guardar el documento
annotationEditor->Save(u"OutputDirectory\\AnnotationSample_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 anotaciones en archivos PDF utilizando C++. Específicamente, ha visto cómo leer, agregar, editar y eliminar anotaciones de archivos PDF. Además, ha aprendido a eliminar una anotación específica, anotaciones por tipo o todas las anotaciones mediante Aspose.PDF for C++. La API proporciona un montón de funciones adicionales para trabajar con archivos PDF. Puede explorar la API en detalle utilizando la documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también