pdf 文档虽然可以保留特殊的内容格式和视觉效果,但在编辑、复制或搜索内容信息时往往会比较困难。通过将 pdf 文件中的文本和图像提取出来,用户可以轻松地对其进行处理或以其他格式保存提取的内容,从而解决 pdf 文件内容难以编辑的问题。本文将介绍如何使用 spire.pdf for python 通过 python 程序从 pdf 文档中提取文本和图像。
安装 spire.pdf for python
本教程需要用到 spire.pdf for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.pdf
如果您不清楚如何安装,请参考此教程:如何在 vs code 中安装 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 天的临时许可证。