PDF 注釈ツールを使用すると、テキストをハイライトしたり、付箋を追加したり、形状を描画したり、コメントを直接 PDF ドキュメントに挿入したりできます。これは、フィードバックを提供したり、メモを取ったり、デザインにマークアップをしたり、ドキュメントでの共同作業を行ったりする際に便利です。PDF 注釈機能をマスターすることで、ワークフローを効率化し、PDF ファイルの作業時に生産性を向上させることができます。
この記事では、C# で Spire.PDF for .NET を使用して PDF ドキュメントにさまざまな種類の注釈をプログラム的に追加する方法を説明します。
Spire.PDF for .NET をインストールします
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
C# で PDF にマークアップ注釈を追加する
PDF のマークアップ注釈を使用すると、ユーザーは特定のテキストを強調表示するために背景色を選択して適用できます。Spire.PDF はこのタイプの注釈を操作するために PdfTextMarkupAnnotation クラスを提供しています。C# で Spire.PDF を使用して PDF にマークアップ注釈を追加する手順は次のとおりです。
- PdfDocument オブジェクトを作成します。
- 指定されたファイルパスから PDF ドキュメントをロードします。
- ドキュメントから特定のページを取得します。
- PdfTextFinder クラスのメソッドを使用してページから目的のテキストを検索します。
- 見つかったテキストに基づいて PdfTextMarkupAnnotation オブジェクトを作成します。
- PdfPageBase.Annotations.Add() メソッドを使用してページに注釈を追加します。
- ドキュメントを別の PDF ファイルとして保存します。
- C#
using Spire.Pdf.Annotations;
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Drawing;
namespace AddMarkupAnnotation
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentオブジェクトを作成
PdfDocument doc = new PdfDocument();
// PDFファイルを読み込む
doc.LoadFromFile("Sample.pdf");
// 特定のページを取得
PdfPageBase page = doc.Pages[0];
// ページに基づいてPdfTextFinderオブジェクトを作成
PdfTextFinder finder = new PdfTextFinder(page);
// 検索オプションを設定
finder.Options.Parameter = TextFindParameter.WholeWord;
finder.Options.Parameter = TextFindParameter.IgnoreCase;
// 指定されたテキストのインスタンスを検索
List fragments = finder.Find("やがて、金や銀などの貴金属が、その希少性と耐久性から、一般的な通貨として登場した。");
// 最初のインスタンスを取得
PdfTextFragment textFragment = fragments[0];
// 注釈テキストを指定
String text = "この文は、紙幣と硬貨が経済に与える影響を強調しています。";
// 見つかったテキストの境界を反復処理
for (int i = 0; i < textFragment.Bounds.Length; i++)
{
// 特定の境界を取得
RectangleF rect = textFragment.Bounds[i];
// テキストマークアップ注釈を作成
PdfTextMarkupAnnotation annotation = new PdfTextMarkupAnnotation("Jessey", text, rect);
// マークアップ色を設定
annotation.TextMarkupColor = Color.Green;
// 注釈のコレクションに注釈を追加
page.Annotations.Add(annotation);
}
// 結果をファイルに保存
doc.SaveToFile("output/PDFにマークアップ注釈を追加.pdf");
// リソースを解放
doc.Dispose();
}
}
}
C# で PDF に自由テキスト注釈を追加する
PDF ファイルに自由テキスト注釈を追加することで、ユーザーは印刷した文書にメモを取るように手書きやタイプしたテキストを直接追加できます。Spire.PDF は自由テキスト注釈を扱うために PdfFreeTextAnnotation を提供しています。PDF ドキュメントに自由テキスト注釈を作成する方法は次のとおりです。
- PdfDocument オブジェクトを作成します。
- 指定されたファイルパスから PDF ドキュメントをロードします。
- ドキュメントから特定のページを取得します。
- PdfTextFinder クラスのメソッドを使用してページから目的のテキストを検索します。
- 注釈を追加するための x および y 座標を指定します。
- PdfFreeTextAnnotation オブジェクトを作成し、テキスト、フォント、ボーダー、色などのプロパティを設定します。
- PdfPageBase.Annotations.Add() メソッドを使用してページに注釈を追加します。
- ドキュメントを別の PDF ファイルとして保存します。
- C#
using Spire.Pdf.Annotations;
using Spire.Pdf.Texts;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace AddFreeTextAnnotation
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentオブジェクトを作成
PdfDocument doc = new PdfDocument();
// PDFファイルを読み込む
doc.LoadFromFile("Sample.pdf");
// 特定のページを取得
PdfPageBase page = doc.Pages[0];
// ページに基づいてPdfTextFinderオブジェクトを作成
PdfTextFinder finder = new PdfTextFinder(page);
// 検索オプションを設定
finder.Options.Parameter = TextFindParameter.WholeWord;
finder.Options.Parameter = TextFindParameter.IgnoreCase;
// 指定されたテキストのインスタンスを検索
List fragments = finder.Find("貴金属");
// 最初のインスタンスを取得
PdfTextFragment textFragment = fragments[0];
// テキスト境界を取得
RectangleF rect = textFragment.Bounds[0];
// 注釈を追加するxおよびy座標を取得
float x = rect.Right;
float y = rect.Bottom;
// フリーテキスト注釈を作成
RectangleF rectangle = new RectangleF(x - 100, y, 210, 20);
PdfFreeTextAnnotation textAnnotation = new PdfFreeTextAnnotation(rectangle);
// 注釈の内容を設定
textAnnotation.Text = "貴金属とは、金や銀といった価値の高い金属のこと。";
// 注釈のその他のプロパティを設定
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", 10f, FontStyle.Bold), true);
PdfAnnotationBorder border = new PdfAnnotationBorder(1f);
textAnnotation.Font = font;
textAnnotation.Border = border;
textAnnotation.BorderColor = Color.Purple;
textAnnotation.Color = Color.Green;
textAnnotation.Opacity = 1.0f;
// 注釈のコレクションに注釈を追加
page.Annotations.Add(textAnnotation);
// 結果をファイルに保存
doc.SaveToFile("output/PDFに自由テキスト注釈を追加.pdf");
// リソースを解放
doc.Dispose();
}
}
}
C# で PDF にポップアップ注釈を追加する
PDF ファイルのポップアップ注釈を使用すると、クリックすると表示される小さなラベルやコメントを追加できます。これにより、追加情報や短いメッセージを表示できます。Spire.PDF はポップアップ注釈を扱うために PdfPopupAnnotation クラスを提供しています。ポップアップ注釈を PDF に追加する手順は次のとおりです。
- PdfDocument オブジェクトを作成します。
- 指定されたファイルパスから PDF ドキュメントをロードします。
- ドキュメントから特定のページを取得します。
- PdfTextFinder クラスのメソッドを使用してページから目的のテキストを検索します。
- 注釈を追加するための x および y 座標を指定します。
- PdfPopupAnnotation オブジェクトを作成し、テキスト、アイコン、色などのプロパティを設定します。
- PdfPageBase.Annotations.Add() メソッドを使用してページに注釈を追加します。
- ドキュメントを別の PDF ファイルとして保存します。
- C#
using Spire.Pdf.Annotations;
using Spire.Pdf.Texts;
using Spire.Pdf;
using System.Drawing;
namespace AddPopupAnnotation
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentオブジェクトを作成
PdfDocument doc = new PdfDocument();
// PDFファイルを読み込む
doc.LoadFromFile("Sample.pdf");
// 特定のページを取得
PdfPageBase page = doc.Pages[0];
// ページに基づいてPdfTextFinderオブジェクトを作成
PdfTextFinder finder = new PdfTextFinder(page);
// 検索オプションを設定
finder.Options.Parameter = TextFindParameter.WholeWord;
finder.Options.Parameter = TextFindParameter.IgnoreCase;
// 指定されたテキストのインスタンスを検索
List fragments = finder.Find("貴金属");
// 最初のインスタンスを取得
PdfTextFragment textFragment = fragments[0];
// テキスト境界を取得
RectangleF textBound = textFragment.Bounds[0];
// 注釈を追加するxおよびy座標を取得
float x = textBound.Right + 5;
float y = textBound.Top - 15;
// ポップアップ注釈を作成
RectangleF rectangle = new RectangleF(x, y, 30, 30);
PdfPopupAnnotation popupAnnotation = new PdfPopupAnnotation(rectangle);
// 注釈テキストを設定
popupAnnotation.Text = "貴金属とは、金や銀といった価値の高い金属のこと。";
// 注釈のアイコンと色を設定
popupAnnotation.Icon = PdfPopupIcon.Comment;
popupAnnotation.Color = Color.Red;
// 注釈のコレクションに注釈を追加
page.Annotations.Add(popupAnnotation);
// 結果をファイルに保存
doc.SaveToFile("output/PDFにポップアップ注釈を追加.pdf");
// リソースを解放
doc.Dispose();
}
}
}
C# で PDF に形状注釈を追加する
PDF の形状注釈は、長方形、円、線、矢印などのグラフィカルな形状を PDF ドキュメントに追加して、情報を強調表示したり提供したりすることを指します。Spire.PDF は、カスタム形状注釈を PDF ドキュメントに作成するために PdfPolyLineAnnotation クラスを提供しています。詳細な手順は次のとおりです。
- PdfDocument オブジェクトを作成します。
- 指定されたファイルパスから PDF ドキュメントをロードします。
- ドキュメントから特定のページを取得します。
- PdfTextFinder クラスのメソッドを使用してページから目的のテキストを検索します。
- 注釈を追加するための座標を指定します。
- PdfPolyLineAnnotation オブジェクトを作成し、注釈のテキストを設定します。
- PdfPageBase.Annotations.Add() メソッドを使用してページに注釈を追加します。
- ドキュメントを別の PDF ファイルとして保存します。
- C#
using Spire.Pdf.Annotations;
using Spire.Pdf.Texts;
using Spire.Pdf;
using System.Drawing;
namespace AddShapeAnnotation
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentオブジェクトを作成
PdfDocument doc = new PdfDocument();
// PDFファイルを読み込む
doc.LoadFromFile("Sample.pdf");
// 特定のページを取得
PdfPageBase page = doc.Pages[0];
// ページに基づいてPdfTextFinderオブジェクトを作成
PdfTextFinder finder = new PdfTextFinder(page);
// 検索オプションを設定
finder.Options.Parameter = TextFindParameter.WholeWord;
finder.Options.Parameter = TextFindParameter.IgnoreCase;
// 指定されたテキストのインスタンスを検索
List fragments = finder.Find("貴金属");
// 最初のインスタンスを取得
PdfTextFragment textFragment = fragments[0];
// テキスト境界を取得
RectangleF textBound = textFragment.Bounds[0];
// 注釈を追加する座標を取得
float left = textBound.Left;
float top = textBound.Top;
float right = textBound.Right;
float bottom = textBound.Bottom;
// 形状注釈を作成
PdfPolyLineAnnotation polyLineAnnotation = new PdfPolyLineAnnotation(page, new PointF[] {
new PointF(left, top), new PointF(right, top), new PointF(right - 5, bottom), new PointF(left - 5, bottom), new PointF(left, top) });
// 注釈テキストを設定
polyLineAnnotation.Text = "貴金属とは、金や銀といった価値の高い金属のこと。";
// 注釈のコレクションに注釈を追加
page.Annotations.Add(polyLineAnnotation);
// 結果をファイルに保存
doc.SaveToFile("output/PDFに図形の注釈を追加.pdf");
// リソースを解放
doc.Dispose();
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。