C#でPDF注釈を追加および編集する方法

C#でPDFの注釈を追加・編集する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDFはC#開発者がAddTextAnnotationのようなシンプルなAPIコールを通してテキストコメントや付箋を含むPDF注釈を追加、編集、削除することを可能にし、ビジネスアプリケーションにおけるドキュメントコラボレーションとレビューワークフローを強化します。

注釈は、ユーザーがドキュメントの特定のセクションにコメント、リマインダー、または追加情報を追加できるようにします。 このツールは、PDFで作業する際のコラボレーションとコミュニケーションを強化し、ユーザーが注釈を付けたり、コメントしたり、共有コンテンツにコンテキストを提供したりすることを可能にします。

PDFの注釈は、ビジネスワークフローにおいてさまざまな役割を果たします。レビュアーは文書にマークアップしてフィードバックすることができ、チームは元のコンテンツを変更することなく契約書について共同作業を行うことができます。 文書管理システムを構築する場合でも、既存のPDFワークフローを強化する場合でも、IronPDFの注釈機能はC#によるPDF作成編集機能とシームレスに統合されます。 注釈機能とともに高度なセキュリティ機能を必要とする組織については、包括的なPDFセキュリティチュートリアルをご覧ください。

クイックスタート: IronPDFを使用してPDFに注釈を追加

このクイックガイドでは、C#でIronPDFを使用してPDFドキュメントにテキスト注釈を追加する方法を説明します。 ほんの数行のコードで、開発者はPDFにコメントやノートを追加することで、ドキュメントのインタラクティビティとコラボレーションを向上させることができます。 まずPDFを読み込み、AddTextAnnotationメソッドを使って素早く注釈を挿入します。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronPDF をインストールします

    PM > Install-Package IronPdf

  2. このコード スニペットをコピーして実行します。

    PdfDocument.FromFile("input.pdf")
        .Annotations.Add(new TextAnnotation(0) { Title="Note", Contents="Review this section.", X=50, Y=700 })
        .SaveAs("annotated.pdf");
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronPDF を使い始めましょう
    arrow pointer


PDFに注釈を追加するにはどうすればよいですか?

をご覧ください。

PDF注釈により、PDFページに "付箋" のようなコメントを追加することができます。 AnnotationsプロパティのAddメソッドを使用することで、プログラム的に注釈を追加することができます。

PDFのテキスト注釈は、物理的な文書の付箋と同様の機能を果たします。 ページ上に小さなアイコンで表示され、クリックするとコメント全文が表示されます。 この押し付けがましくないアプローチは、ドキュメントを読みやすく保ちながら、必要不可欠なフィードバックメカニズムを提供します。 HTMLからPDFへの変換で作業する場合、変換後に注釈を追加して、見直しが必要な部分をマークしたり、追加のコンテキストを提供したりすることができます。 この機能は、JavaScriptレンダリングと組み合わせることで、さらなる説明が必要な動的コンテンツに特に役立ちます。

すべてのページインデックスはゼロベースのインデックスに従います。

:path=/static-assets/pdf/content-code-examples/how-to/annotation-add-annotation.cs
using IronPdf;
using IronPdf.Annotations;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Annotation</h1>");

// Create a PDF annotation object on a specified page index
TextAnnotation annotation = new TextAnnotation(0)
{
    Title = "This is the title",
    Contents = "This is the long 'sticky note' comment content...",
    X = 50,
    Y = 700,
};

// Add the annotation
pdf.Annotations.Add(annotation);
pdf.SaveAs("annotation.pdf");
$vbLabelText   $csharpLabel

TextAnnotationクラスは、カスタマイズのためにいくつかのプロパティを提供します:

  • タイトル: 注釈のヘッダーテキストで、通常は注釈ポップアップに表示されます。
  • Contents: The main body text of the annotation
  • X, Y: 注釈アイコンがページ上に表示される位置を指定する座標です。
  • PageIndex:注釈を配置するゼロベースのページ番号

より複雑なドキュメントのワークフローについては、承認プロセスのためのデジタル署名やドキュメントのバージョニングのための透かしのような他のIronPDF機能と注釈を組み合わせることを検討してください。 機密文書を扱う場合は、注釈をPDFの権限とパスワードと統合して、注釈を表示または変更できるユーザーを制御することもできます。

テキスト注釈にはどのようなプロパティを設定できますか?

TextAnnotationクラスは、基本的なものを超えてカスタマイズするためのいくつかのプロパティを提供します:

  • タイトル: 注釈のヘッダーテキストで、通常は注釈ポップアップに表示されます。
  • コンテンツ: 注釈の本文テキスト
  • X, Y: 注釈アイコンがページ上に表示される位置を指定する座標です。
  • PageIndex:注釈を配置するゼロベースのページ番号
  • 件名:注釈を分類するための任意の件名。
  • アイコン:注釈の視覚的表現(注釈、コメント、ヘルプなど)。
  • 開く:注釈ポップアップをデフォルトで開くかどうか

これらの特性により、開発者は、文書コミュニケーションを強化する豊富な文脈注釈を作成することができます。 複数のドキュメント タイプを含む高度なワークフローについては、RTF から PDF への変換や、Markdown から PDF への変換を検討し、異なるソース フォーマット間で注釈を維持するようにしてください。

PDFの注釈で座標はどのように機能しますか?

PDFの座標は、左上起点を使用する多くのUIフレームワークとは異なり、ページの左下から始まります。 XYプロパティは、注釈アイコンがページ上のどこに表示されるかを、ポイント(1/72インチ)単位で決定します。 プログラムでアノテーションを配置する場合、座標計算がこの違いを考慮していることを確認してください。

注釈の位置を計算する際は、標準的なUSレターのページが8.5 x 11インチ(612 x 792ポイント)であることを覚えておいてください。 A4ページ、595 x 842ポイント。 正確な位置決めのために、アノテーションを配置する前に、ページの寸法をプログラムで取得することをお勧めします。 これは、カスタム用紙サイズで作業する場合や、コンテンツに基づいてレスポンシブな注釈配置を実装する場合に特に重要になります。

注釈付きPDF

上記のPDFドキュメントの注釈はChromeブラウザーで表示できます。


既存のアノテーションを取得および編集するにはどうすればよいですか?

PDF注釈の取得と編集は、明確さ、正確さ、使いやすさを向上させることでコラボレーションを改善します。 注釈プロパティを通して注釈コレクションにアクセスし、TitleContentsXYなどのプロパティを新しい情報で更新します。

既存のPDF、特にURL変換DOCXインポートによるPDFを扱う場合、他のユーザーやシステムによって追加された注釈を修正する必要があるかもしれません。 IronPdfはアノテーションコレクションへのフルアクセスを提供し、プログラムによって特定のアノテーションを繰り返し、特定し、更新することができます。 この能力は、文書レビューのワークフローを実装する場合や、既存の文書管理システムと統合する場合に不可欠です。

:path=/static-assets/pdf/content-code-examples/how-to/annotation-edit-annotation.cs
using IronPdf;
using IronPdf.Annotations;
using System.Linq;

PdfDocument pdf = PdfDocument.FromFile("annotation.pdf");

// Retrieve annotation collection
PdfAnnotationCollection annotationCollection = pdf.Annotations;

// Select the first annotation
TextAnnotation annotation = (TextAnnotation)annotationCollection.First();

// Edit annotation
annotation.Title = "New title";
annotation.Contents = "New content...";
annotation.X = 150;
annotation.Y = 800;

pdf.SaveAs("editedAnnotation.pdf");
$vbLabelText   $csharpLabel

編集プロセスでは、他のすべてのドキュメントプロパティとコンテンツが維持され、指定された注釈のみが変更されるようにします。 これは、ドキュメントの改訂や要件の変更に基づいて注釈を更新する必要があるレビューワークフローで特に役立ちます。 包括的な文書管理のためには、注釈編集とメタデータ操作を組み合わせて、文書のバージョンと改訂履歴を追跡することを検討してください。

なぜ既存の注釈を編集する必要があるのですか?

注釈の編集は、フィードバックが改訂に基づいて更新されたり、あいまいなコメントを明確にする必要があったり、コンテンツの変更によって注釈の位置が変更されたりするような共同文書のワークフローでは不可欠です。 この機能により、文書レビューが改訂サイクルを通じて最新かつ適切なものに保たれます。

企業環境では、注釈の編集は承認ワークフローと統合されることが多く、最終承認前に上司がレビュアーのコメントを修正する必要があります。 さらに、文書が翻訳またはローカライズされる際には、言語の変更や文化的な適応を反映するために注釈の更新が必要になることがあります。 このようなシナリオのために、IronPdfのUTF-8と国際言語サポートは、異なる言語や文字セットでもアノテーションが正しく表示されるようにします。

注釈を編集すると、他のドキュメント プロパティはどうなりますか?

編集プロセスでは、他のすべてのドキュメントプロパティとコンテンツが維持され、指定された注釈のみが変更されるようにします。 文書の構造、書式、埋め込みリソース、その他の注釈は変更せず、PDFの完全性を維持しながら、特定のレビューコメントに対して的を絞った更新を可能にします。

このような選択的な編集アプローチは、特に文書の改ざんを避けなければならない規制業界において、文書の完全性を維持するために非常に重要です。 このプロセスでは、デジタル署名、フォームフィールド、しおり、その他すべてのPDF機能が保持されます。 監査証跡が必要な文書については、注釈の変更と同時に改訂履歴追跡の実装を検討してください。

編集された注釈付きPDF

上記のPDFドキュメントの注釈はChromeブラウザーで表示できます。


どのように PDF ドキュメントから注釈を削除できますか?

以下の方法を使用して、不要または古い注釈を削除します:RemoveAtRemoveAllAnnotationsForPageClear

  • RemoveAt:指定されたインデックスを持つ単一の注釈を削除します。
  • RemoveAllAnnotationsForPage:指定されたページのすべての注釈を削除します。
  • Clear:ドキュメント内のすべての注釈を削除します。

注釈の除去は、文書の最終化にとって非常に重要です。 フィードバックを取り入れ、必要な変更を加えた後、最終版を配布する前に、レビューコメントを一掃するとよいでしょう。 このプロセスはPDF圧縮のような他のIronPDF機能とうまく統合し、配布用に最適化されたクリーンなドキュメントを作成します。 アーカイブが必要な文書については、長期保存のコンプライアンスを確保するために注釈を削除した後、PDF/Aフォーマットに変換することを検討してください。

単一の注釈を削除するにはどうすればよいですか?

単一の注釈を削除するには、注釈コレクションインデックスに基づいて対応するインデックスを使用してRemoveAtメソッドを使用します。

:path=/static-assets/pdf/content-code-examples/how-to/annotation-remove-single-annotation.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("multipleAnnotation.pdf");

// Remove a single annotation with specified index
pdf.Annotations.RemoveAt(1);

pdf.SaveAs("removeSingleAnnotation.pdf");
$vbLabelText   $csharpLabel

プログラムでアノテーションを削除する場合、削除のたびにアノテーション・コレクションのインデックスが再作成されることを理解することが重要です。 複数の特定の注釈を削除する必要がある場合は、コレクションを逆順に作業するか、最初に削除する注釈を収集し、それから逆順に削除してください。 このアプローチにより、間違った注釈を削除してしまうインデックスシフトの問題を防ぐことができます。

PDFの単一注釈削除

上記のPDFドキュメントの注釈はChromeブラウザーで表示できます。

すべての注釈を一度に削除するにはどうすればよいですか?

特定のページのすべての注釈を削除するには、RemoveAllAnnotationsForPageメソッドを使用し、ページインデックスを指定します。 ドキュメント全体の注釈をすべて削除したい場合は、Annotations プロパティの Clear メソッドを呼び出してください。

この一括削除機能は、最終配布用のドキュメントを準備する場合や、以前のレビューサイクルの注釈を削除する必要があるドキュメントのバージョン管理システムを実装する場合に特に役立ちます。 メタデータ編集と組み合わせて、ドキュメントのプロパティを更新し、レビューステータスを示すことを検討してください。 サニタイズされたドキュメントが必要なワークフローでは、PDFサニタイズオプションを検討し、注釈を含む潜在的にセンシティブな情報をすべて削除してください。

:path=/static-assets/pdf/content-code-examples/how-to/annotation-remove-all-annotation.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("multipleAnnotation.pdf");

// Remove all annotaions on a specified page
pdf.Annotations.RemoveAllAnnotationsForPage(0);

// Remove all annotaions on the document
pdf.Annotations.Clear();

pdf.SaveAs("removeAllAnnotation.pdf");
$vbLabelText   $csharpLabel

注釈の一括削除はいつ使用すべきですか?

一括削除は、配布用の文書の最終化、アーカイブ目的のクリーンバージョンの作成、または以前のレビューサイクルからの注釈を消去する必要がある文書のバージョニングの実装に最適です。 このアプローチは、注釈を個別に削除するよりも時間を節約し、本番ドキュメントに誤ってレビューコメントが残らないようにします。

さらに、注釈を正しく扱えない可能性のある自動処理システム用に文書を準備する場合や、注釈付きPDFを他の形式に変換する場合には、一括削除が不可欠です。 セキュリティの高い環境では、配布前にすべての注釈を削除することで、社内のレビューコメントや社外向けではない機密のフィードバックが不用意に公開されるのを防ぎます。

PDFアノテーションを扱うためのベストプラクティスとは

アプリケーションにアノテーション機能を実装する際には、以下のベストプラクティスを考慮してください:

1.座標系:PDFの座標は、左上起点を使用する多くのUIフレームワークとは異なり、ページの左下から始まります。 この違いを考慮した座標計算を行うようにしてください。

2.パフォーマンスの最適化:複数の注釈を追加する場合、各追加の後に保存するのではなく、バッチ操作を検討してください。 このアプローチは、特に大きなPDFファイルを扱うときのパフォーマンスを向上させます。

3.注釈の可視性:すべてのPDFビューアが同じように注釈を表示するわけではありません。 注釈付きPDFをさまざまなビューアでテストし、一貫したユーザーエクスペリエンスを確保します。

4.フォームとの統合:注釈は、PDFフォームを補完し、フォーム構造を変更することなく、文脈に沿ったヘルプや指示を提供します。

5.セキュリティへの配慮:機密文書を扱うときは、注釈に機密情報が含まれている可能性があることを忘れないでください。 注釈付きコンテンツを保護するために、適切なセキュリティ対策を実施してください。

6.アクセシビリティ:文書のアクセシビリティを高める注釈を追加し、障害のあるユーザーに追加のコンテキストを提供することを検討してください。 これは、アクセシブル・ドキュメントのためのIronPDF/UAコンプライアンス要件に沿ったものです。

なぜアノテーションには座標系が重要なのか

左下隅を原点とするPDF座標は、左上の原点システムに慣れた開発者を混乱させる可能性があります。 不正確な座標計算により、注釈が予期せぬ場所に配置され、重要なコンテンツが不明瞭になったり、ページ外に表示されたりする可能性があります。 UIフレームワークやユーザー入力システムと統合する場合は、常に座標を適切に変換してください。

座標系を理解することは、クリックトゥアノテーション機能のような機能を実装する場合や、ユーザーインタラクションから画面座標をPDF座標に変換する場合に、さらに重要になります。 複雑な位置決めが必要な場合は、IronPdfのビューポートとズーム機能を使用して、表示条件に関係なく注釈が正しく表示されるようにすることを検討してください。

複数の注釈を追加するときにパフォーマンスを最適化するにはどうすればよいですか?

複数の注釈を追加する場合は、ドキュメントを保存する前に、すべての注釈をコレクションに追加して、操作をバッチ化してください。 このアプローチにより、ファイルI/O操作が削減され、特に大きなPDFや複数の文書を連続して処理する場合のパフォーマンスが大幅に向上します。 一括操作中のユーザーエクスペリエンスを向上させるために、進捗インジケータの実装を検討してください。

// Example of batch annotation processing
var annotations = new List<TextAnnotation>();
for (int i = 0; i < 100; i++)
{
    annotations.Add(new TextAnnotation(0) 
    { 
        Title = $"Note {i}", 
        Contents = $"Content for note {i}",
        X = 50 + (i * 10),
        Y = 700 - (i * 20)
    });
}

// Add all annotations at once
foreach (var annotation in annotations)
{
    pdf.Annotations.Add(annotation);
}

// Save once after all additions
pdf.SaveAs("batch-annotated.pdf");
// Example of batch annotation processing
var annotations = new List<TextAnnotation>();
for (int i = 0; i < 100; i++)
{
    annotations.Add(new TextAnnotation(0) 
    { 
        Title = $"Note {i}", 
        Contents = $"Content for note {i}",
        X = 50 + (i * 10),
        Y = 700 - (i * 20)
    });
}

// Add all annotations at once
foreach (var annotation in annotations)
{
    pdf.Annotations.Add(annotation);
}

// Save once after all additions
pdf.SaveAs("batch-annotated.pdf");
$vbLabelText   $csharpLabel

大量のシナリオでパフォーマンスをさらに向上させるには、非同期処理またはマルチスレッド技術を使用して、注釈操作を並列処理することを検討してください。

クロスビューアー互換性のために考慮すべきことは何ですか?

PDFビューアによって、アイコンのスタイル、ポップアップの動作、位置の癖が異なる注釈が表示されることがあります。 Adobe Acrobat、Chrome、Edge、モバイルPDFリーダーなどの一般的なビューアで注釈付きPDFを常にテストし、注釈が正しく表示され、ユーザーが使用する可能性のあるプラットフォーム全体で機能することを確認します。

ビューアによっては、すべての注釈タイプに対応していない場合や、表示が異なる場合があります。 互換性を最大限に保つため、標準的な注釈タイプにこだわり、ビューア固有の機能に依存しないようにしてください。 AzureAWSのような特定の環境にデプロイする場合は、一貫した動作を保証するために、ターゲット環境のデフォルトのPDFビューアで注釈をテストしてください。

次に何ができるのかを見てみましょうか? こちらのチュートリアルページをご覧ください: PDFの編集

よくある質問

C# で PDF 文書にテ キ ス ト 注釈を追加す る 方法は?

IronPdfはAddTextAnnotationメソッドを使ってテキスト注釈を追加するシンプルなAPIを提供します。ページ番号、位置座標(X, Y)、タイトル、内容を指定して注釈を作成できます。例えば、TextAnnotationオブジェクトでAnnotations.Addメソッドを使えば、たった一行のコードで付箋のような注釈を追加することができます。

どのような種類のPDF注釈がサポートされていますか?

IronPDFはPDFドキュメントで付箋のように機能するテキスト注釈をサポートしています。これらの注釈はページ上に小さなアイコンとして表示され、クリックするとコメントテキストが表示されます。

既存のPDF注釈をプログラムで編集できますか?

はい、IronPDFはAPIを通して既存のPDF注釈を取得、編集することができます。PdfDocumentオブジェクトのAnnotationsプロパティを使用して注釈にアクセスし、タイトル、内容、位置のようなプロパティを変更し、PDFに戻って変更を保存することができます。

PDF文書から注釈を削除する方法を教えてください。

IronPDFはプログラムでPDFドキュメントから注釈を削除するメソッドを提供します。PdfDocumentの注釈コレクションにアクセスし、特定の注釈を削除したり、ページやドキュメント全体からすべての注釈を削除したりすることができます。

PDFアノテーションの一般的なビジネスユースケースは?

IronPDFの注釈機能は、レビュアーがドキュメントにマークアップしてフィードバックするドキュメントレビューワークフロー、オリジナルコンテンツを変更せずに契約書を作成するチームコラボレーション、技術ドキュメントに問題点を指摘する品質保証チームなどに最適です。これらの機能は文書管理システムとシームレスに統合できます。

PDF注釈機能を使用するために、追加のソフトウェアをインストールする必要がありますか?

いいえ、IronPDFはすべてのPDF注釈機能を含む自己完結型のC#ライブラリです。IronPDFライブラリをダウンロードしてプロジェクトで参照するだけで、外部依存なしにPDFドキュメントに注釈を追加、編集、削除することができます。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 17,012,929 | バージョン: 2025.12 リリース