C++を使用したPDFファイルの注釈の操作

注釈は、PDFドキュメントに追加できる追加のオブジェクトです。注釈は、ドキュメントにコンテキスト情報を追加するなどのシナリオで役立ちます。 PDFファイルは簡単に編集できないため、注釈はドキュメントに追加情報を追加するオプションを提供します。この記事では、C++を使用してPDFファイルの注釈を操作する方法を学習します。

PDFファイルの注釈を操作するためのC++API

Aspose.PDF for C++は、PDFドキュメントを作成、読み取り、更新できるC++ライブラリです。さらに、APIはPDFファイルの注釈の操作をサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。

PM> Install-Package Aspose.PDF.Cpp

PDFファイルの注釈を読む

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());
}

PDFファイルに注釈を追加する

以下は、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ファイルの注釈を変更する

以下は、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");

PDFファイルから注釈を削除する

Aspose.PDF for C++は、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ファイルからタイプ別に注釈を削除する手順です。

以下は、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ファイルからすべての注釈を削除する手順です。

以下は、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");

無料ライセンスを取得する

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、C++を使用してPDFファイルの注釈を操作する方法を学習しました。具体的には、PDFファイルから注釈を読み取り、追加、編集、および削除する方法を見てきました。さらに、Aspose.PDF for C++ APIを使用して、特定の注釈、タイプ別の注釈、またはすべての注釈を削除する方法を学習しました。 APIは、PDFファイルを操作するための一連の追加機能を提供します。 公式ドキュメントを使用して、APIを詳細に調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目