Работа с аннотациями в файлах PDF с использованием C++

Аннотации — это дополнительные объекты, которые можно добавлять в документы PDF. Аннотации могут быть полезны в таких сценариях, как добавление контекстной информации в документ. Поскольку файлы PDF нелегко редактировать, аннотации позволяют добавлять в документ дополнительную информацию. В этой статье вы узнаете, как работать с аннотациями в файлах PDF с помощью C++.

C++ API для работы с аннотациями в файлах PDF

Aspose.PDF for C++ — это библиотека C++, позволяющая создавать, читать и обновлять PDF-документы. Кроме того, API поддерживает работу с аннотациями в файлах PDF. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела загрузки.

PM> Install-Package Aspose.PDF.Cpp

Чтение аннотаций в файлах PDF

Ниже приведены шаги для чтения аннотаций в файлах PDF.

Ниже приведен пример кода для чтения аннотаций в файлах PDF с использованием C++.

// Создайте экземпляр класса PdfAnnotationEditor.
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();

// Загрузите образец PDF-файла
annotationEditor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Создайте массив типов аннотаций
System::ArrayPtr<Aspose::Pdf::Annotations::AnnotationType> annotationTypes = System::MakeArray<Aspose::Pdf::Annotations::AnnotationType>({ Aspose::Pdf::Annotations::AnnotationType::Text, Aspose::Pdf::Annotations::AnnotationType::Highlight });

// Извлечь аннотации
System::SharedPtr<System::Collections::Generic::IList<System::SharedPtr<Aspose::Pdf::Annotations::Annotation>>> annotationList = annotationEditor->ExtractAnnotations(1, 2, annotationTypes);

// Пролистайте аннотации
for (System::SharedPtr<Aspose::Pdf::Annotations::Annotation> annotation : annotationList)
{
	// Показать содержимое аннотации
	Console::WriteLine(annotation->get_Contents());
}

Добавить аннотации к файлам PDF

Ниже приведены шаги для добавления аннотаций в файлы PDF.

Ниже приведен пример кода для добавления аннотаций к файлам PDF с помощью C++.

// Создайте экземпляр класса PdfContentEditor.
auto editor = MakeObject<Facades::PdfContentEditor>();

// Загрузите образец PDF-файла
editor->BindPdf(u"SourceDirectory\\Sample 1.pdf");

// Создать аннотацию
editor->CreateText(System::Drawing::Rectangle(400, 700, 100, 100), u"Title", u"Welcome to Aspose", true, u"Comment", 1);

// Сохранить PDF-файл
editor->Save(u"OutputDirectory\\AnnotationSample.pdf");

Ниже приведено изображение файла, сохраненного с помощью примера кода.

Аннотация добавлена в файл PDF

Изображение с аннотацией

Изменение аннотаций в файлах PDF с помощью C++

Ниже приведены шаги по изменению аннотаций в файлах PDF.

Ниже приведен пример кода для изменения аннотаций в файлах PDF с помощью C++.

// Создайте экземпляр образца PDF-файла
auto document = MakeObject <Aspose::Pdf::Document>(u"SourceDirectory\\AnnotationSample.pdf");

// Создайте экземпляр класса PdfAnnotationEditor.
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();

// Загрузите образец PDF-документа
annotationEditor->BindPdf(document);

// Создать объект аннотации
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));

// Установить дату изменения
annotation->set_Modified(System::DateTime::get_Now());

// Установить заголовок
annotation->set_Title(u"NEW AUTHOR");

// Установить содержимое
annotation->set_Contents(u"NEW CONTENTS");

// Установить тему
annotation->set_Subject(u"NEW SUBJECT");

// Установить открытый флаг
annotation->set_Open(true);

// Изменить аннотацию
annotationEditor->ModifyAnnotations(1, 1, annotation);

// Сохраните документ
annotationEditor->Save(u"OutputDirectory\\AnnotationSample_out.pdf");

Удалить аннотации из файлов PDF

Aspose.PDF для C++ предоставляет следующие возможности для удаления аннотаций из PDF-файлов.

Удалить конкретную аннотацию

Ниже приведены шаги по удалению определенной аннотации из файла PDF.

Ниже приведен пример кода для удаления определенной аннотации из файла PDF с помощью C++.

// Создайте экземпляр класса PdfAnnotationEditor.
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();
// Загрузите существующий PDF-документ
annotationEditor->BindPdf(u"SourceDirectory\\AnnotationSample.pdf");
// Удалить аннотацию по имени
annotationEditor->DeleteAnnotation(u"4df2cf36-d961-4d83-a39e-4b0069f97e0b");
// Сохраните документ
annotationEditor->Save(u"OutputDirectory\\AnnotationSample_out.pdf");

Удаление аннотаций по типу

Ниже приведены шаги по удалению аннотаций по типу из файлов PDF.

Ниже приведен пример кода для удаления аннотаций по типу из PDF-файлов с помощью C++.

// Создайте экземпляр класса PdfAnnotationEditor.
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();
// Загрузите существующий PDF-документ
annotationEditor->BindPdf(u"SourceDirectory\\AnnotationSample.pdf");
// Удалить текстовые аннотации
annotationEditor->DeleteAnnotations(u"Text");
// Сохраните документ
annotationEditor->Save(u"OutputDirectory\\AnnotationSample_out.pdf");

Удалить все аннотации

Ниже приведены шаги по удалению всех аннотаций из файлов PDF.

Ниже приведен пример кода для удаления всех аннотаций из PDF-файлов с помощью C++.

// Создайте экземпляр класса PdfAnnotationEditor.
System::SharedPtr<Aspose::Pdf::Facades::PdfAnnotationEditor> annotationEditor = System::MakeObject<Aspose::Pdf::Facades::PdfAnnotationEditor>();
// Загрузите существующий PDF-документ
annotationEditor->BindPdf(u"SourceDirectory\\AnnotationSample.pdf");
// Удалить все аннотации
annotationEditor->DeleteAnnotations();
// Сохраните документ
annotationEditor->Save(u"OutputDirectory\\AnnotationSample_out.pdf");

Получить бесплатную лицензию

Вы можете попробовать API без ограничений на пробную версию, запросив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как работать с аннотациями в файлах PDF с помощью C++. В частности, вы увидели, как читать, добавлять, редактировать и удалять аннотации из файлов PDF. Кроме того, вы узнали, как удалить конкретную аннотацию, аннотации по типу или все аннотации с помощью Aspose.PDF для C++ API. API предоставляет множество дополнительных возможностей для работы с PDF-файлами. Вы можете подробно изучить API, используя официальную документацию. Если у вас возникнут вопросы, свяжитесь с нами на нашем бесплатном форуме поддержки.

Смотрите также