从 PDF 中提取文本与图像坐标的终极指南:用 Python 快速实现

7 阅读2分钟

在数据处理工作中,提取 PDF 文档中的文本和图像坐标是一个常见需求。本文将介绍如何使用 Spire.PDF for Python 库实现这一功能,通过简单的代码示例帮助你快速上手。

Spire.PDF 简介

Spire.PDF for Python 是一个功能强大的 PDF 处理库,允许开发者以编程方式操作 PDF 文件。它支持提取文本、图像、元数据等。当我们需要获取特定文本或图像的坐标时,这个库显得尤为便捷。

安装命令:pip install spire-pdf

坐标系设定

在 Spire.PDF 中,坐标系设定非常重要:

  1. 原点 (0, 0) 位于页面的左上角。
  2. X 轴向右延伸,Y 轴向下延伸。

理解这一点有助于我们更好地定位 PDF 中的元素。

获取文本坐标

以下是使用 Spire.PDF 提取 PDF 中指定文本坐标的步骤:

  1. 创建 PdfDocument 对象。
  2. 加载 PDF 文档。
  3. 获取特定页面。
  4. 创建 PdfTextFinder 对象并设置查找选项。
  5. 查找文本并获取其坐标。

下面是获取文本坐标的示例代码:

from spire.pdf.common import *
from spire.pdf import *

# 创建 PdfDocument 对象
doc = PdfDocument()

# 加载 PDF 文档
doc.LoadFromFile("Input.pdf")

# 获取特定页面
page = doc.Pages.get_Item(0)

# 创建 PdfTextFinder 对象
textFinder = PdfTextFinder(page)

# 指定查找选项
findOptions = PdfTextFindOptions()
findOptions.Parameter = TextFindParameter.WholeWord
textFinder.Options = findOptions

# 在页面中查找字符串 "隐私政策"
findResults = textFinder.Find("隐私政策")

# 获取查找结果中第一个实例
result = findResults[0]

# 获取找到文本的 X/Y 坐标
x = int(result.Positions[0].X)
y = int(result.Positions[0].Y)
print("The coordinates of the first instance of the found text are:", (x, y))

# 释放资源
doc.Dispose()

代码解析

  • PdfDocument 对象用于打开现有 PDF 文件。
  • 通过 PdfTextFinder 可以轻松找到指定文本,设置的查找选项允许忽略大小写并确保匹配完整单词。
  • 最后,通过 result.Positions 获取文本坐标,其中 (0, 0) 表示页面的左上角。

获取图片坐标

获取图像坐标的过程与文本提取类似,但使用 PdfImageHelper 处理图像信息。以下是示例代码:

from spire.pdf.common import *
from spire.pdf import *

# 创建 PdfDocument 对象
doc = PdfDocument()

# 加载 PDF 文档
doc.LoadFromFile("Input.pdf")

# 获取特定页面
page = doc.Pages.get_Item(0)

# 创建 PdfImageHelper 对象
imageHelper = PdfImageHelper()

# 获取页面中的图像信息
imageInformation = imageHelper.GetImagesInfo(page)

# 获取指定图像的 X/Y 坐标
x = int(imageInformation[0].Bounds.X)
y = int(imageInformation[0].Bounds.Y)
print("The coordinates of the specified image are:", (x, y))

# 释放资源
doc.Dispose()

代码解析

  • 使用 PdfImageHelper 类来获取特定页面上的所有图像信息。
  • 通过 imageInformation 对象获取图像的边界坐标(X, Y),便于后续处理。

总结

本文介绍了如何使用 Spire.PDF for Python 提取 PDF 中文本及图像的坐标,并提供了相关示例代码。无论是在信息提取、数据分析,还是文档处理方面,掌握这些技术都将极大提升你的工作效率。希望这篇博客能帮助你快速上手 PDF 坐标提取的相关操作!