赞
踩
获取PDF文件中文字或图片的坐标可以实现精确定位,这对于快速提取指定区域的元素,以及在PDF中添加注释、标记或自动盖章等操作非常有用。本文将详解如何使用国产PDF库通过C# 提取PDF中指定文本或图片的坐标位置(X, Y轴)。
✍ 用于操作PDF文件的第三方库为Spire.PDF for .NET。可以下载产品包后手动安装或者直接通用Nuget安装。
开始前我们首先了解该库关于PDF中坐标系的一些信息:
Spire.PDF for .NET规定的坐标系原点位于PDF页面左上角,x 轴从原点开始水平向右延伸,y 轴从原点开始垂直向下延伸 (如下图所示)。
通过指定坐标XY轴,我们可以在PDF页面指定位置处绘制文本、图片、表格等元素。当然Spire.PDF for .NET也提供了相应的接口来帮助大家获取已有PDF文件中指定文本或图片的坐标信息。具体操作如下。
要指定文本的坐标,主要分为两步实现:
代码:
- 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);
- }
- }
- }
- }
- }
与获取文字坐标类似,获取图片坐标主要也分为两步:
代码:
- 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中文字坐标的返回结果:
获取PDF中图片坐标的返回结果:
相关推荐阅读:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。