.NETでPDFに注釈とフォームを追加する方法
.NET で注釈とフォームを追加する方法
このガイドでは、Aspose.PDF FOSS for .NET を使用して PDF ドキュメントに注釈とインタラクティブなフォームフィールドを追加する方法を示します。
前提条件
| 要件 | 詳細 |
|---|---|
| ランタイム | .NET 8.0 以降 |
| パッケージ | dotnet add package Aspose.Pdf.Foss |
| ライセンス | MIT — ライセンスキーは不要 |
ステップ 1: テキスト注釈を追加
テキスト注釈はページ上の付箋として表示されます。バウンディング矩形、
注釈の内容、および作成者のタイトルを指定します。open: true を設定して、ドキュメントを開くときに注釈を展開表示します。
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
var page = doc.Pages[1];
page.Annotations.AddTextAnnotation(
new Rectangle(72, 720, 200, 740),
contents: "Review this section",
title: "Editor",
open: true);
doc.Save("annotated.pdf");ステップ 2: リンク注釈を追加
リンク注釈は矩形領域をクリック可能にします。Rectangle とPdfAction.CreateUri の呼び出しを組み合わせて、クリック時にユーザーを外部 URL にナビゲートします。
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(
new Rectangle(50, 700, 200, 720), action);ステップ 3: ハイライトとシェイプ注釈を追加
ハイライト注釈は、テキスト領域を半透明のオーバーレイでマークします。四角形や円形などのシェイプ注釈は、ページ上に幾何学的なアウトラインを描画します。両方ともカラー配列とオプションの線幅パラメータを受け付けます。
page.Annotations.AddHighlightAnnotation(
new Rectangle(72, 680, 300, 700),
quadPoints: null,
color: new double[] { 1, 1, 0 });
page.Annotations.AddSquareAnnotation(
new Rectangle(72, 640, 200, 680),
borderColor: new double[] { 0, 0, 1 },
fillColor: null,
lineWidth: 1.5);ステップ 4: フォーム フィールドの値を読み取る
AcroForm フィールドは Document.Form を通じてアクセスされます。Form.Fields を反復して、ドキュメントを変更せずに各フィールドの名前と現在の値を読み取ります。
using var doc = Document.Open(pdfBytes);
foreach (var field in doc.Form.Fields)
{
Console.WriteLine($"{field.FullName}: {field.Value}");
}ステップ 5: アノテーションのフラット化
foreach (var annot in doc.Pages[1].Annotations)
{
annot.Flatten();
}
doc.Save("flattened.pdf");主要クラス
| Class | Purpose |
|---|---|
AnnotationCollection | ページ注釈の追加と管理 |
LinkAnnotation | ハイパーリンク注釈 |
TextAnnotation | 付箋注釈 |
Form | AcroForm フィールドへのアクセス |
Field | フィールドの基本クラス |
PdfAction.CreateUri | URI リンクアクションの作成 |
AnnotationSelector | タイプで注釈をフィルタリング |
トラブルシューティング
| Problem | Solution |
|---|---|
| Annotation not visible | 矩形座標がページの境界内にあることを確認してください |
| Link URI is null | リンクは GoTo アクションを使用している可能性があります — ActionType を確認してください |
| Form field value empty | フィールドに /V エントリがない可能性があります — フィールド名を確認してください |