注释是可以添加到 PDF 文档的附加对象。注释在向文档添加上下文信息等场景中会很有帮助。由于 PDF 文件不易编辑,注释提供了向文档添加附加信息的选项。在本文中,您将学习如何在 C++ 中添加、更新和删除 PDF 文件中的注释。
- C++ API 在 PDF 中添加、更新和删除注释
- 在 C++ 中阅读 PDF 中的注释
- 在 C++ 中为 PDF 添加注释
- 在 C++ 中编辑 PDF 中的注释
- 在 C++ 中从 PDF 中删除注释
- 获得免费许可证
用于添加、更新和删除 PDF 注释的 C++ API
Aspose.PDF for C++ 是一个 C++ 库,允许您创建、阅读和更新 PDF 文档。此外,API 支持处理 PDF 文件中的注释。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。
PM> Install-Package Aspose.PDF.Cpp
在 C++ 中为 PDF 添加注释
以下是在 C++ 中为 PDF 文件添加注释的步骤。
- 首先,创建一个 PdfContentEditor 类的实例。
- 使用 PdfContentEditor->BindPdf (System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 使用 PdfContentEditor->CreateText (System::Drawing::Rectangle rect, System::String title, System::String contents, bool open, System::String icon, int32t page) 方法创建注释。
- 最后,使用 PdfContentEditor->Save (System::String destFile) 方法保存 PDF。
以下是使用 C++ 为 PDF 文件添加注释的示例代码。
// 创建 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");
下面是示例代码保存的文件的图像。
C++ 读取 PDF 中的注释
以下是在 C++ 中读取 PDF 文件中的注释的步骤。
- 首先,创建一个 PdfAnnotationEditor 类的实例。
- 使用 PdfAnnotationEditor->BindPdf (System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 使用 PdfAnnotationEditor->ExtractAnnotations (int32t start, int32t end, System::ArrayPtr) 检索注释Aspose::Pdf::Annotations::AnnotationTypeannotTypes) 方法。
- 循环浏览注释并打印它们的内容。
以下是使用 C++ 读取 PDF 文件中的注释的示例代码。
// 创建 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());
}
在 C++ 中编辑 PDF 中的注释
以下是在 C++ 中编辑和更新 PDF 文件中的注释的步骤。
- 首先,创建一个 PdfAnnotationEditor 类的实例。
- 使用 PdfAnnotationEditor->BindPdf (System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 创建 TextAnnotation 类的实例。
- 设置注解的内容。
- 使用 PdfAnnotationEditor->ModifyAnnotations (int32t start, int32t end, System::SharedPtrAspose::Pdf::Annotations::Annotation annotation) 方法来修改注释。
- 最后,使用 PdfAnnotationEditor->Save (System::String destFile) 方法保存更新的 PDF 文件。
以下是使用 C++ 修改 PDF 文件中的注释的示例代码。
// 创建示例 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");
C++ 删除 PDF 注释
Aspose.PDF for C++ 提供以下用于从 PDF 文件中删除注释的选项。
删除特定的 PDF 注释
以下是从 PDF 文件中删除特定注释的步骤。
- 首先,创建一个 PdfAnnotationEditor 类的实例。
- 使用 PdfAnnotationEditor->BindPdf (System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 使用 PdfAnnotationEditor->DeleteAnnotation (System::String annotName) 方法按名称删除注释。
- 最后,使用 PdfAnnotationEditor->Save (System::String destFile) 方法保存更新的 PDF 文件。
以下是使用 C++ 从 PDF 文件中删除特定注释的示例代码。
// 创建 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 文件中按类型删除注释的步骤。
- 首先,创建一个 PdfAnnotationEditor 类的实例。
- 使用 PdfAnnotationEditor->BindPdf (System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 使用 PdfAnnotationEditor->DeleteAnnotations (System::String annotType) 方法按类型删除注释。
- 最后,使用 PdfAnnotationEditor->Save (System::String destFile) 方法保存更新的 PDF 文件。
以下是使用 C++ 从 PDF 文件中按类型删除注释的示例代码。
// 创建 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 文件中删除所有注释的步骤。
- 首先,创建一个 PdfAnnotationEditor 类的实例。
- 使用 PdfAnnotationEditor->BindPdf (System::SharedPtrAspose::Pdf::Document srcDoc) 方法。
- 使用 PdfAnnotationEditor->DeleteAnnotations() 方法删除所有注释。
- 最后,使用 PdfAnnotationEditor->Save (System::String destFile) 方法保存更新的 PDF 文件。
以下是使用 C++ 从 PDF 文件中删除所有注释的示例代码。
// 创建 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");
用于添加/更新/删除 PDF 注释的 C++ API - 获得免费许可证
您可以通过请求 免费临时许可证 来试用 Aspose.PDF for C++,而不受评估限制。
结论
在本文中,您学习了如何使用 C++ 处理 PDF 文件中的注释。具体来说,您已经了解了如何在 C++ 中读取、添加、编辑和删除 PDF 中的注释。此外,您还学习了如何使用 Aspose.PDF for C++ 删除特定注释、按类型注释或所有注释。该 API 提供了一系列用于处理 PDF 文件的附加功能。您可以使用 官方文档 详细探索 API。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。