当前位置: 首页 > news >正文

C# 提取PDF中指定文本、图片的坐标

获取PDF文件中文字或图片的坐标可以实现精确定位,这对于快速提取指定区域的元素,以及在PDF中添加注释、标记或自动盖章等操作非常有用。本文将详解如何使用国产PDF通过C# 提取PDF中指定文本或图片的坐标位置(X, Y轴)

✍ 用于操作PDF文件的第三方库为Spire.PDF for .NET。可以下载产品包后手动安装或者直接通用Nuget安装。

开始前我们首先了解该库关于PDF中坐标系的一些信息:

Spire.PDF for .NET使用 PdfPageBase 类表示PDF页面,由内容区域和四周的页边距组成。页面上坐标系的原点位于内容区域的左上角,x 轴从原点开始水平向右延伸,y 轴从原点开始垂直向下延伸 (如下图所示)。

通过指定坐标XY轴,我们可以在PDF页面指定位置处绘制文本图片表格等元素。当然Spire.PDF for .NET也提供了相应的接口来帮助大家获取已有PDF文件中指定文本或图片的坐标信息。具体操作如下。

C# 获取 PDF 中指定文本的坐标

要指定文本的坐标,主要分为两步实现:

  1. 首先需要使用 PdfTextFinder.Find() 方法查找PDF文件中所有指定文本;
  2. 查找到文本后,再通过 PdfTextFragment.Positions 属性进一步获取其 (X, Y) 标信息。

代码:

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 中指定图片的坐标

与获取文字坐标类似,获取图片坐标主要也分为两步:

  1. 首先使用 PdfImageHelper.GetImagesInfo() 获取某个PDF页面中所有图片信息;
  2. 获取图片后,再通过 PdfImageInfo.Bounds 性获取其 (X, Y) 标信息。

代码:

using Spire.Pdf;
using Spire.Pdf.Utilities;
using System;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);}}
}

加载的示例文档:

获取PDF中文字坐标的返回结果:

使用C#获取PDF中指定文本的坐标位置

获取PDF中图片坐标的返回结果:

使用C#获取PDF中指定图片的坐标位置

相关推荐阅读:

C# 提取 PDF 文档中的文本

C# 提取PDF中的图片

C# 查找并高亮PDF中的指定文本

Spire.PDF for .NET库的API文档

http://www.lryc.cn/news/261554.html

相关文章:

  • CTF网络安全大赛是干什么的?发展史、赛制、赛程介绍,参赛需要学什么?
  • 阿里云SMC迁移RedHat/CentOS 5 内核升级
  • 无代码开发让合利宝支付与CRM无缝API集成,提升电商用户运营效率
  • 数据标注公司如何确保数据安全?景联文科技多维度提供保障
  • (C语言)精确计算程序运行时间的方法
  • 【Vulnhub 靶场】【VulnCMS: 1】【简单】【20210613】
  • 普冉(PUYA)单片机开发笔记(10): I2C通信-配置从机
  • Idea maven打包时 报错 illegalArgumentException: Malformed \uxxxx encoding 解决方法
  • Qt中槽函数在那个线程执行的探索和思考
  • C++ 类模板
  • 边缘计算系统设计与实践
  • 【Spark精讲】Spark存储原理
  • 贪心算法:买卖股票的最佳时机II 跳跃游戏 跳跃游戏II
  • 音频DAC,ADC,CODEC的选型分析,高性能立体声
  • python 连接SQL server 请用pymssql连接,千万别用pyodbc
  • IntelliJ IDEA 自带HTTP Client接口插件上传文件示例
  • C++中的接口有什么用
  • el-table合并相同数据的单元格
  • Verilog Systemverilog define宏定义
  • 51单片机应用从零开始(十一)·数组函数、指针函数
  • 【PostgreSQL】从零开始:(八)PostgreSQL-数据库PSQL元命令
  • 02 使用Vite创建Vue3项目
  • Shell三剑客:sed(简介)
  • tp连接数据库
  • jmeter,断言:响应断言、Json断言
  • dockerfite创建镜像---INMP+wordpress
  • 服务器数据恢复—raid5热备盘未激活崩溃导致上层oracle数据丢失的数据恢复案例
  • 生产派工自动化:MES系统的关键作用
  • netty-daxin-2(netty常用事件讲解)
  • 使用playbook部署k8s集群