当前位置:   article > 正文

通过C# 提取PDF中指定文本、图片的坐标_查询pdf的x,y轴

查询pdf的x,y轴

获取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文件中指定文本或图片的坐标信息。具体操作如下。

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

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

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

代码:

  1. using Spire.Pdf;
  2. using Spire.Pdf.Texts;
  3. using System.Drawing;
  4. namespace GetCoordinatesOfText
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. //创建PdfDocument对象
  11. PdfDocument pdf = new PdfDocument();
  12. //加载PDF文件
  13. pdf.LoadFromFile("大数据.pdf");
  14. //遍历所有页面
  15. foreach (PdfPageBase page in pdf.Pages)
  16. {
  17. //创建PdfTextFinder对象
  18. PdfTextFinder finder = new PdfTextFinder(page);
  19. //设置查找选项
  20. PdfTextFindOptions options = new PdfTextFindOptions();
  21. options.Parameter = TextFindParameter.IgnoreCase;
  22. finder.Options = options;
  23. //查找页面中所有指定文本
  24. List<PdfTextFragment> fragments = finder.Find("海量");
  25. //遍历所有查找的文本
  26. foreach (PdfTextFragment fragment in fragments)
  27. {
  28. //获取文本的坐标信息
  29. PointF found = fragment.Positions[0];
  30. Console.WriteLine(found);
  31. }
  32. }
  33. }
  34. }
  35. }

C# 获取 PDF 中指定图片的坐标

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

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

代码:

  1. using Spire.Pdf;
  2. using Spire.Pdf.Utilities;
  3. using System;
  4. namespace GetCoordinatesOfImage
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. //创建PdfDocument对象
  11. PdfDocument pdf = new PdfDocument();
  12. //加载PDF文件
  13. pdf.LoadFromFile("大数据.pdf");
  14. //获取指定页面
  15. PdfPageBase page = pdf.Pages[0];
  16. //创建PdfImageHelper对象
  17. PdfImageHelper helper = new PdfImageHelper();
  18. //获取页面中的图片信息
  19. PdfImageInfo[] images = helper.GetImagesInfo(page);
  20. //获取第一张图片的 X、Y 坐标
  21. float xPos = images[0].Bounds.X;
  22. float yPos = images[0].Bounds.Y;
  23. Console.WriteLine("图片坐标为({0},{1})", xPos, yPos);
  24. }
  25. }
  26. }

加载的示例文档:

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

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

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

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

相关推荐阅读:

C# 提取 PDF 文档中的文本

C# 提取PDF中的图片

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

Spire.PDF for .NET库的API文档

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/744759
推荐阅读
相关标签
  

闽ICP备14008679号