从 PDF 文档中提取文本功能在各个领域都有着广泛的应用。当处理大量的 PDF 格式合同、报告和财务数据。提取 PDF 文本可以快速检索关键信息,进行数据分析;当需要将 PDF 文档内容翻译成其他语言时,可以先提取原 PDF 文档文本内容;同时从 PDF 文档中提取的文本内容可以作为数据输入的一部分,与其他系统或应用进行无缝对接。在本文中,您将学习如何使用 Spire.PDF for 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
从指定页面提取所有文本
Spire.PDF for Python 提供的 PdfTextExtractor 类用于从可搜索的 PDF 文件中提取文本,PdfTextExtractOptions 类用于管理提取选项。在未设置特定的提取选项时,默认情况下 PdfTextExtractor.ExtractText() 方法会从指定的页面中提取所有文本。详细的步骤如下:
- 创建 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 使用 PdfDocument.Pages.get_Item() 方法获取特定的页面。
- 创建 PdfTextExtractor 对象。
- 创建 PdfTextExtractOptions 对象。
- 使用 PdfTextExtractor.ExtractText() 方法从所选页面中提取文本。
- 将提取的文本写入 TXT 文件。
- Python
from spire.pdf import *
from spire.pdf.common import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文档
# pdf.LoadFromFile("in.pdf")
# 获取PDF第一页,遍历文档所有页便可提取文档所有文本内容
page = pdf.Pages.get_Item(0)
# 创建PdfTextExtractor 对象
textExtractor = PdfTextExtractor(page)
# 创建PdfTextExtractOptions 对象
extractOptions = PdfTextExtractOptions()
# 从页面中提取文本
text = textExtractor.ExtractText(extractOptions)
# 写入到 txt 文件中
extractedText = open("Extracted.txt", "w", encoding = "utf-8")
extractedText.write(text)
# 释放对象
extractedText.close()
pdf.Close()
从页面矩形区域提取文本
使用 PdfTextExtractOptions.ExtractArea 属性可以指定一个页面矩形区域进行 PDF 文本内容的提取。具体步骤如下:
- 创建 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 使用 PdfDocument.Pages.get_Item() 方法获取特定的页面。
- 创建 PdfTextExtractor 对象。
- 创建 PdfTextExtractOptions 对象。
- 使用 PdfTextExtractOptions.ExtractArea 属性设置页面区域范围。
- 使用 PdfTextExtractor.ExtractText() 方法从所指定的页面区域中提取文本。
- 将提取的文本写入 TXT 文件。
- Python
from spire.pdf import *
from spire.pdf.common import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文档
# pdf.LoadFromFile("in.pdf")
# 获取PDF第一页,遍历文档所有页便可提取文档所有文本内容
page = pdf.Pages.get_Item(0)
#创建PdfTextExtractor 对象
textExtractor = PdfTextExtractor(page)
#创建PdfTextExtractOptions 对象
extractOptions = PdfTextExtractOptions()
# 设置从矩形区域提取文本的选项
extractOptions.ExtractArea = RectangleF(90.0, 220.0, 770.0, 130.0)
#从页面中提取文本
text = textExtractor.ExtractText(extractOptions)
# 写入到 txt 文件中
extractedText = open("ExtractedArea.txt", "w", encoding = "utf-8")
extractedText.write(text)
# 释放对象
extractedText.close()
pdf.Close()
设置简单提取选项提取文本
Spire.PDF for Python 使用上面提及的方式或设置 PdfTextExtractOptions.IsSimpleExtraction = False 提取文本时,产品内部是根据文本坐标位置计算排序来提取。当设置 PdfTextExtractOptions.IsSimpleExtraction = True 简单提取选项提取是根据文本在页面中绘制的逻辑顺序提取,即先绘制在页面的内容会先提取,后绘制的内容后提取,不管它的具体坐标位置。具体步骤如下:
- 创建 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 使用 PdfDocument.Pages.get_Item() 方法获取特定的页面。
- 创建 PdfTextExtractor 对象。
- 创建 PdfTextExtractOptions 对象。
- 使用 PdfTextExtractOptions.IsSimpleExtraction = True 设置简单提取选项来提取文本。
- 使用 PdfTextExtractor.extract() 方法按设置选项提取文本。
- 将提取的文本写入 TXT 文件。
- Python
from spire.pdf import *
from spire.pdf.common import *
# 创建PdfDocument对象
pdf = PdfDocument()
# 加载PDF文档
# pdf.LoadFromFile("示例.pdf")
# 获取PDF第一页,遍历文档所有页便可提取文档所有文本内容
page = pdf.Pages.get_Item(0)
#创建PdfTextExtractor 对象
textExtractor = PdfTextExtractor(page)
#创建PdfTextExtractOptions 对象
extractOptions = PdfTextExtractOptions()
# 设置简单提取选项为true来提取文本
extractOptions.IsSimpleExtraction = True
#从页面中提取文本
text = textExtractor.ExtractText(extractOptions)
# 写入到 txt 文件中
extractedText = open("SimpleExtractTrue.txt", "w", encoding = "utf-8")
extractedText.write(text)
# 释放对象
extractedText.close()
pdf.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。