使用 C++ 處理 PDF 文件中的註釋

註釋是可以添加到 PDF 文檔的附加對象。註釋在向文檔添加上下文信息等場景中很有用。由於 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 文件添加註釋的步驟。

以下是使用 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");

下面是示例代碼保存的文件的圖片。

添加到 PDF 文件的註釋

顯示註釋的圖像

C++ 讀取 PDF 中的註釋

以下是在 C++ 中讀取 PDF 文件中註釋的步驟。

以下是使用 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 文件中的註釋的步驟。

以下是使用 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 文件中刪除特定註釋的步驟。

以下是使用 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 文件中刪除註釋的步驟。

以下是使用 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 文件中刪除所有註釋的步驟。

以下是使用 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。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。

也可以看看