Python实现快速从指定页面PDF中提取文本
在现代办公环境中PDF 文件作为一种通用的文档格式被广泛使用。无论是合同、报告还是电子书很多重要信息都储存于 PDF 文件中。因此从 PDF 文件中提取文本数据的需求也逐渐增加。本文将为大家介绍如何使用 Spire.PDF for Python 来实现这一功能具体包括从某一页和从指定区域提取文本。1. 环境准备首先确保你已经安装了 Python 和 Spire.PDF 的相关库。你可以通过以下命令安装 Spire.PDF1pipinstallSpire.PDF2. 从指定页面提取文本2.1 代码示例以下代码展示了如何从 PDF 文档中的特定页例如第2页提取文本1234567891011121314151617181920212223242526fromspire.pdf.commonimport*fromspire.pdfimport*# 创建一个 PdfDocument 对象docPdfDocument()# 加载 PDF 文档doc.LoadFromFile(C:/Users/Administrator/Desktop/Terms of service.pdf)# 创建 PdfTextExtractOptions 对象并启用全文本提取extractOptionsPdfTextExtractOptions()# 提取所有文本包括空格extractOptions.IsExtractAllTextTrue# 获取特定的页面例如第2页pagedoc.Pages.get_Item(1)# 创建 PdfTextExtractor 对象textExtractorPdfTextExtractor(page)# 从页面中提取文本texttextExtractor.ExtractText(extractOptions)# 使用 UTF-8 编码将提取的文本写入文件withopen(output/TextOfPage.txt,w, encodingutf-8) asfile:file.write(text)2.2 代码解析创建PdfDocument对象这一步是加载 PDF 文件的第一步。加载 PDF 文档使用指定路径加载你要处理的 PDF 文件。配置提取选项通过设置IsExtractAllText为 True确保提取所有文本包括空格。获取特定页面doc.Pages.get_Item(1)获取的是 PDF 的第二页索引从0开始。创建文本提取器并提取文本使用PdfTextExtractor对象来提取文本。将提取的文本保存为文件最终将文本内容保存到指定路径的文件中。3. 从指定区域提取文本有时候仅提取 PDF 中的某一特定区域的文本更加有效。这可以通过定义一个矩形区域来实现。3.1 代码示例以下代码将展示如何从 PDF 的指定区域提取文本12345678910111213141516171819202122232425262728fromspire.pdf.commonimport*fromspire.pdfimport*# 创建一个 PdfDocument 对象docPdfDocument()# 加载 PDF 文档doc.LoadFromFile(C:/Users/Administrator/Desktop/Terms of service.pdf)# 获取特定的页面例如第2页pagedoc.Pages.get_Item(1)# 创建 PdfTextExtractor 对象textExtractorPdfTextExtractor(page)# 创建 PdfTextExtractOptions 对象extractOptionsPdfTextExtractOptions()# 定义提取的矩形区域# RectangleF(left, top, width, height)extractOptions.ExtractAreaRectangleF(0.0,100.0,890.0,80.0)# 从指定区域提取文本保留空格texttextExtractor.ExtractText(extractOptions)# 使用 UTF-8 编码将提取的文本写入文件withopen(output/TextOfRectangle.txt,w, encodingutf-8) asfile:file.write(text)3.2 代码解析加载 PDF 文件与之前相同首先加载 PDF 文档。获取特定页面依然使用doc.Pages.get_Item(1)来获取第2页。定义提取区域通过RectangleF类来定义一个矩形区域该区域的左上角坐标为(0, 100)宽度为890高度为80。执行文本提取然后使用ExtractText方法从指定区域提取文本。保存文本最后提取的文本同样保存为 UTF-8 编码的文件。