通过Python将PDF转为文本,快速提取PDF中的文字

快速高效地从PDF文档中提取信息对于专业人士来说非常重要。处理大量PDF文件时,将PDF转换为可编辑的文本格式可以节省时间和精力。而强大的Python语言正是在这些方面发挥其作用。利用Python中丰富的API,我们可以轻松在Python程序中将PDF转换为文本(txt文件),实现PDF文字的轻松提取。

本文将展示如何使用Python进行PDF到文本的转换,发挥Python在PDF文件处理中的作用。本文包括以下主题:

文章目录

本文所使用的转换方法需要用到Spire.Doc for Python,可从官网下载或通过PyPI安装:pip install Spire.Doc

使用Python转换PDF为文本的步骤

在我们开始使用Python将PDF转换为文本之前,让我们先了解一下转换可以为我们提供的主要优势:

  • 可编辑:将PDF转换为文本使文档操作者能够更轻松地编辑文档,文本文件可以在大多数设备上打开和编辑。
  • 可访问性:与PDF相比,文本文件通常更易于访问。无论是电脑还是移动设备,都可以轻松地查看文本文件。
  • 与其他应用程序的集成及数据共享:文本文件可以无缝地集成到各种应用程序和工作流程中,实现数据在程序之间的共享。

使用Python将PDF文档转换为文本文件的步骤:

  1. 导入模块。
  2. 创建PdfDocument 类的对象,并使用 LoadFromFile() 方法加载PDF文件。
  3. 创建PdfTextExtractOptions类的对象,并设置文本提取选项,包括提取所有文本、显示隐藏文本、仅提取指定区域的文本以及简单提取。
  4. 使用 PdfDocument.Pages.get_Item() 方法获取文档中的页面,并基于每个页面创建 PdfTextExtractor 对象,使用 Extract() 方法提取页面上的文本,并指定选项。
  5. 将提取的文本保存为文本文件,并关闭 PdfDocument 对象。

Python将PDF转换为文本但不保留布局

当使用简单提取方法从PDF中提取文本时,程序将不保留空白区域,并跟踪每个字符串的当前Y位置,如果Y位置发生变化,就在输出结果中插入换行符。

python 复制代码
from spire.pdf import PdfDocument
from spire.pdf import PdfTextExtractOptions
from spire.pdf import PdfTextExtractor

# 创建PdfDocument类的对象并加载PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")

# 创建一个字符串对象来存储文本
extracted_text = ""

# 创建PdfExtractor对象
extract_options = PdfTextExtractOptions()
# 设置使用简单提取方法
extract_options.IsSimpleExtraction = True

# 循环遍历文档中的页面
for i in range(pdf.Pages.Count):
    # 获取页面
    page = pdf.Pages.get_Item(i)
    # 创建PdfTextExtractor对象,并将页面作为参数传递
    text_extractor = PdfTextExtractor(page)
    # 从页面中提取文本
    text = text_extractor.ExtractText(extract_options)
    # 将提取的文本添加到字符串对象中
    extracted_text += text

# 将提取的文本写入文本文件
with open("output/PDF转文本.txt", "w") as file:
    file.write(extracted_text)
pdf.Close()

原文档

输出的文本文件 *

Python将PDF转换为文本并保留布局

当使用默认提取方法从PDF中提取文本时,程序将逐行提取文本,包括空白。

python 复制代码
from spire.pdf import PdfDocument
from spire.pdf import PdfTextExtractOptions
from spire.pdf import PdfTextExtractor

# 创建PdfDocument类的对象并加载PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")

# 创建一个字符串对象来存储文本
extracted_text = ""

# 创建PdfExtractor对象
extract_options = PdfTextExtractOptions()

# 循环遍历文档中的页面
for i in range(pdf.Pages.Count):
    # 获取页面
    page = pdf.Pages.get_Item(i)
    # 创建PdfTextExtractor对象,并将页面作为参数传递
    text_extractor = PdfTextExtractor(page)
    # 从页面中提取文本
    text = text_extractor.ExtractText(extract_options)
    # 将提取的文本添加到字符串对象中
    extracted_text += text

# 将提取的文本写入文本文件
with open("output/提取的文本(保留排版).txt", "w") as file:
    file.write(extracted_text)
pdf.Close()

输出的文本文件

Python将指定的PDF页面区域转换为文本

python 复制代码
from spire.pdf import PdfDocument
from spire.pdf import PdfTextExtractOptions
from spire.pdf import PdfTextExtractor
from spire.pdf import RectangleF

# 创建PdfDocument类的对象并加载PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("示例.pdf")

# 创建PdfExtractor对象
extract_options = PdfTextExtractOptions()

# 设置提取特定页面区域
extract_options.ExtractArea = RectangleF(50.0, 220.0, 700.0, 230.0)

# 获取页面
page = pdf.Pages.get_Item(0)

# 创建PdfTextExtractor对象,并将页面作为参数传递
text_extractor = PdfTextExtractor(page)

# 从页面中提取文本
extracted_text = text_extractor.ExtractText(extract_options)

# 将提取的文本写入文本文件
with open("output/PDF页面区域转文本.txt", "w") as file:
    file.write(extracted_text)
pdf.Close()

输出的文本文件

总结

在本文中,我们探讨了Python在PDF转文本中的应用。参照文中的操作步骤及代码示例,我们可以在Python程序中实现快速的PDF到文本的转换。如果在使用Spire.PDF for Python的过程中遇到任何问题,可以通过Spire产品论坛获取技术支持。

相关推荐
心中有国也有家1 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎
人工智能·pytorch·python·学习·numpy
卷毛的技术笔记2 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
编程大师哥2 小时前
匿名函数 lambda + 高阶函数
java·python·算法
isyangli_blog2 小时前
OpenDayLight (Carbon 版本) 启动与组件安装
开发语言·php
vb2008113 小时前
FastAPI APIRouter
开发语言·python
Benszen3 小时前
KVM虚拟化解决方案
开发语言·perl
会编程的土豆3 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
東雪木3 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
adrninistrat0r3 小时前
Java调用链MCP分析工具
java·python·ai编程
杨充3 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法