获取 PDF 中文本或图片的坐标对于精确引用、操作文档中的特定元素特别有帮助。通过提取坐标,您可以准确识别文本或图片在每一页上的位置,从而满足数据提取、文本识别或突出显示特定区域等任务的需求。本文将介绍如何使用 Spire.PDF for .NET 在 C# 中获取 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 文件。
- 遍历 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 pdf = new PdfDocument();
//加载PDF文件
pdf.LoadFromFile("示例.pdf");
//遍历所有页面
foreach (PdfPageBase page in pdf.Pages)
{
//创建PdfTextFinder对象
PdfTextFinder finder = new PdfTextFinder(page);
//设置查找选项
PdfTextFindOptions options = new PdfTextFindOptions();
options.Parameter = TextFindParameter.IgnoreCase;
finder.Options = options;
//查找页面中所有指定文本
List<PdfTextFragment> 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;
namespace GetCoordinatesOfImage
{
class Program
{
static void Main(string[] args)
{
//创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
//加载PDF文件
pdf.LoadFromFile("示例.pdf");
//获取指定页面
PdfPageBase page = pdf.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);
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。