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 ページ内のテキストの座標を取得する
Spire.PDF が提供する PdfTextFinder.Find() メソッドを使用すると、検索可能な PDF ドキュメント内で指定した文字列のすべてのインスタンスを検索できます。特定のインスタンスの座標情報は、PdfTextFragment.Positions プロパティから取得可能です。Spire.PDF for .NET を使って PDF 内の指定されたテキストの (X, Y) 座標を取得する手順は次の通りです:
- PdfDocument オブジェクトを作成します。
- PdfDocument.LoadFromFile() メソッドを使用して PDF ファイルを読み込みます。
- ドキュメント内のページを繰り返し処理します。
- PdfTextFinder オブジェクトを作成し、PdfTextFinder.Find() メソッドでページ内の指定されたテキストのすべてのインスタンスを取得します。
- 検索結果を繰り返し処理し、PdfTextFragment.Positions プロパティを通じて特定の結果の座標情報を取得します。
- C#
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Drawing;
namespace GetCoordinatesOfText
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentオブジェクトを作成
PdfDocument doc = new PdfDocument();
// PDFファイルを読み込む
doc.LoadFromFile("Sample.pdf");
// すべてのページをループ
foreach (PdfPageBase page in doc.Pages)
{
// PdfTextFinderオブジェクトを作成
PdfTextFinder finder = new PdfTextFinder(page);
// 検索オプションを設定
PdfTextFindOptions options = new PdfTextFindOptions();
options.Parameter = TextFindParameter.IgnoreCase;
finder.Options = options;
// 特定のテキストのすべてのインスタンスを検索
var fragments = finder.Find("オーストラリアのグレートバリアリーフ");
// インスタンスをループ
foreach (PdfTextFragment fragment in fragments)
{
// 特定のインスタンスの位置を取得
PointF found = fragment.Positions[0];
Console.WriteLine(found);
}
}
}
}
}
C# で PDF ページ内の画像の座標を取得する
Spire.PDF は、PdfImageHelper.GetImagesInfo() メソッドを提供しており、指定されたページ内のすべての画像情報を取得できます。特定の画像の座標情報は、PdfImageInfo.Bounds プロパティを通じて取得可能です。Spire.PDF for .NET を使って PDF ドキュメント内の画像の座標を取得する手順は次の通りです:
- PdfDocument オブジェクトを作成します。
- PdfDocument.LoadFromFile() メソッドを使用して PDF ファイルを読み込みます。
- PdfDocument.Pages[index] プロパティを使用して特定のページを取得します。
- PdfImageHelper オブジェクトを作成し、PdfImageHelper.GetImageInfo() メソッドを使ってページ内のすべての画像情報を取得します。
- PdfImageInfo.Bounds プロパティを通じて特定の画像の座標情報を取得します。
- C#
using Spire.Pdf;
using Spire.Pdf.Utilities;
using System;
namespace GetCoordinatesOfImage
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentオブジェクトを作成
PdfDocument doc = new PdfDocument();
// PDFファイルを読み込む
doc.LoadFromFile("Sample.pdf");
// 特定のページを取得
PdfPageBase page = doc.Pages[0];
// PdfImageHelperオブジェクトを作成
PdfImageHelper helper = new PdfImageHelper();
// ページから画像情報を取得
PdfImageInfo[] images = helper.GetImagesInfo(page);
// 特定の画像のX,Y座標を取得
float xPos = images[0].Bounds.X;
float yPos = images[0].Bounds.Y;
Console.WriteLine("画像の位置は({0},{1})です", xPos, yPos);
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。