首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用C#代码获取 PDF 中文本或图片的坐标

使用C#代码获取 PDF 中文本或图片的坐标

原创
作者头像
用户12401097
发布2026-09-11 17:35:56
发布2026-09-11 17:35:56
220
举报

在处理 PDF 文档时,获取文本或图像的坐标信息是一项非常实用的操作。通过提取元素的位置坐标,可以准确定位每一页中的文本内容或图片所在区域,方便后续进行数据提取、文本识别、内容标注以及区域处理等操作。

本文将介绍如何使用 C# 获取 PDF 文档中文本或图像的坐标信息,并通过相关 PDF 处理工具实现这一功能。

安装 PDF 处理组件

开始之前,需要先将所需的 DLL 文件添加到 .NET 项目中作为引用。

你可以通过官方网站下载相关组件,或者通过 NuGet 包管理器直接安装,以便在项目中快速配置 PDF 文档处理环境。

代码语言:C#
复制
PM> Install-Package Spire.PDF

使用 C# 获取 PDF 中文本坐标

在处理 PDF 文档时,定位指定文本的位置是许多场景中的常见需求,例如文本提取、内容标注、区域定位等。通过文本搜索功能,可以查找 PDF 中目标字符串的位置,并进一步获取对应文本的坐标信息。

一些 PDF 处理库提供了文本查找接口,可以帮助开发者搜索可编辑 PDF 文档中的指定内容,并通过返回结果获取文本所在位置。

以下介绍如何使用 C# 获取 PDF 中文本的 X、Y 坐标信息,主要步骤如下:

  • 创建一个 PdfDocument 对象。
  • 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
  • 遍历文档中的所有页面。
  • 创建 PdfTextFinder 对象,并通过 PdfTextFinder.Find() 方法查找页面中指定的文本内容。
  • 遍历搜索结果,并通过 PdfTextFragment.Positions 属性获取目标文本对应的坐标信息。

完整示例代码如下:

代码语言:C#
复制
using Spire.Pdf;
using Spire.Pdf.Texts;
using System.Collections.Generic;
using System;
using System.Drawing;

namespace GetCoordinatesOfText
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个 PdfDocument 对象
            PdfDocument doc = new PdfDocument();

            //加载 PDF 文件
            doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\input.pdf");

            //遍历所有页面
            foreach (PdfPageBase page in doc.Pages)
            {
                //创建一个 PdfTextFinder 对象
                PdfTextFinder finder = new PdfTextFinder(page);

                //设置查找选项
                PdfTextFindOptions options = new PdfTextFindOptions();
                options.Parameter = TextFindParameter.IgnoreCase;
                finder.Options = options;

                //查找指定文本的所有匹配项
                List<PdfTextFragment> fragments = finder.Find("target audience");

                //遍历匹配结果
                foreach (PdfTextFragment fragment in fragments)
                {
                    //获取指定文本的位置坐标
                    PointF found = fragment.Positions[0];
                    Console.WriteLine(found);
                }
            }
        }
    }
}

使用 C# 获取 PDF 中图像坐标

在处理 PDF 文档时,获取图像的位置信息可以帮助开发者准确定位页面中的图片元素,方便后续进行图像提取、内容分析、区域处理等操作。

通过 PDF 图像处理功能,可以获取指定页面中的所有图像信息,并进一步读取某个图像的边界坐标(Bounds),从而确定其在 PDF 页面中的具体位置。

以下介绍如何使用 C# 获取 PDF 文档中图像的坐标信息,具体步骤如下:

  • 创建一个 PdfDocument 对象。
  • 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
  • 通过 PdfDocument.Pagesindex 属性获取指定页面。
  • 创建 PdfImageHelper 对象,并使用 PdfImageHelper.GetImageInfo() 方法获取页面中的所有图像信息。
  • 通过 PdfImageInfo.Bounds 属性获取指定图像的位置坐标信息。

完整示例代码如下:

代码语言:C#
复制
using Spire.Pdf;
using Spire.Pdf.Utilities;

namespace GetCoordinatesOfImage
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个 PdfDocument 对象
            PdfDocument doc = new PdfDocument();

            //加载 PDF 文件
            doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\input.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);
        }
    }
}

总结

在 PDF 文档处理中,获取文本或图像的坐标信息是一项非常实用的功能。通过定位 PDF 页面中的具体元素位置,开发者可以进一步实现数据提取、内容标注、文本识别、图像处理等操作。

本文介绍了如何使用 C# 获取 PDF 中文本和图像的坐标信息。对于文本内容,可以通过搜索指定字符串并获取对应文本片段的位置坐标;对于图像元素,则可以通过读取页面中的图像信息并获取其边界范围,从而确定图像在 PDF 页面中的具体位置。

无论是处理文本还是图像坐标,合理利用 PDF 处理工具和相关 API 都可以简化开发流程,提高文档处理效率,为 PDF 内容分析、自动化处理以及信息提取等应用场景提供支持。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 安装 PDF 处理组件
  • 使用 C# 获取 PDF 中文本坐标
  • 使用 C# 获取 PDF 中图像坐标
  • 总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档