PDF 文档虽然可以保留特殊的内容格式和视觉效果,但在编辑、复制或搜索内容信息时往往会比较困难。通过将 PDF 文件中的文本和图像提取出来,用户可以轻松地对其进行处理或以其他格式保存提取的内容,从而解决 PDF 文件内容难以编辑的问题。本文将介绍如何使用 Spire.PDF for Python 通过 Python 程序从 PDF 文档中提取文本和图像。
安装 Spire.PDF for Python
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
如果您不清楚如何安装,请参考此教程:如何在 Windows 中安装 Spire.PDF for Python
提取 PDF 文档中的所有文本
Spire.PDF for Python 提供了 PdfPageBase.ExtractText() 方法,可用于提取一个 PDF 页面中的所有文本(包括空白部分),并返回为字符串。从 PDF 文档中提取所有文本的详细步骤如下:
- 创建一个 PdfDocument 类的对象。
- 使用 PdfDocument.LoadFromFile() 方法载入 PDF 文档。
- 遍历文档的所有页面,使用 PdfPageBase.ExtractText() 方法从页面中提取文本,并将其写入文本文件。
- Python
from spire.pdf import *
from spire.pdf.common import *
# 创建PdfDocument类的实例
pdf = PdfDocument()
# 加载PDF文档
pdf.LoadFromFile("示例.pdf")
# 创建一个文本文件以保存提取的文本
extractedText = open("output/提取所有文本.txt", "w", encoding="utf-8")
# 遍历文档的每一页
for i in range(pdf.Pages.Count):
# 获取页面
page = pdf.Pages.get_Item(i)
# 从页面提取文本
text = page.ExtractText()
# 将文本写入TXT文件
extractedText.write(text + "\n")
extractedText.close()
pdf.Close()
从 PDF 页面的指定矩形区域中提取文本
PdfPageBase.ExtractText() 方法还支持从 PDF 页面上的指定矩形区域中提取文本。具体步骤如下:
- 创建一个 PdfDocument 类的对象。
- 使用 PdfDocument.LoadFromFile() 方法载入 PDF 文档。
- 使用 PdfDocument.Pages.get_Item() 方法获取页面。
- 使用 PdfPageBase.ExtractText(RectangleF) 方法从页面上的指定矩形区域中提取文本。
- 将提取的文本保存到文本文件中。
- Python
from spire.pdf import *
from spire.pdf.common import *
# 创建PdfDocument类的对象
pdf = PdfDocument()
# 加载PDF文档
pdf.LoadFromFile("示例.pdf")
# 获取第一页
page = pdf.Pages.get_Item(0)
# 从页面的指定矩形区域提取文本
text = page.ExtractText(RectangleF(90.0, 220.0, 770.0, 130.0))
# 将提取的文本保存到文本文件中
extractedText = open("output/提取区域文本.txt", "w", encoding="utf-8")
extractedText.write(text)
extractedText.close()
pdf.Close()
提取 PDF 文档中的所有图像
Spire.PDF for Python 还提供了 PdfPageBase.ExtractImages() 方法,用于从 PDF 页面中提取所有图像并返回为列表。从 PDF 文档中提取所有图像的详细步骤如下:
- 创建一个 PdfDocument 类的对象。
- 使用 PdfDocument.LoadFromFile() 方法载入 PDF 文档。
- 遍历文档中的页面,使用 PdfPageBase.ExtractImages() 方法从页面中提取图像,并将其放入列表中。
- 将列表中的图像保存为 PNG 文件。
- Python
from spire.pdf import *
from spire.pdf.common import *
# 创建PdfDocument类的实例
pdf = PdfDocument()
# 加载PDF文档
pdf.LoadFromFile("示例.pdf")
# 创建一个列表来存储图像
images = []
# 遍历文档的每一页
for i in range(pdf.Pages.Count):
# 获取页面
page = pdf.Pages.get_Item(i)
# 从页面提取图像并存储在创建的列表中
for img in page.ExtractImages():
images.append(img)
# 保存列表中的图像
i = 0
for image in images:
i += 1
image.Save("output/图片/图片-{0:d}.png".format(i), ImageFormat.get_Png())
pdf.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。