• 利用 Python PyPDF2库轻松提取PDF文本(及其他高级操作)


    当需要从PDF文件中提取文本时,Python中的PyPDF2库是一个非常有用的工具。无论您是需要分析PDF文档中的内容还是需要在文档中搜索特定的信息,PyPDF2都可以帮助您轻松实现这些任务。

    在本文中,我们将探讨如何使用PyPDF2库提取PDF文件中的文本,并提供一些示例代码来帮助您入门。

    安装PyPDF2库

    首先,您需要安装PyPDF2库。您可以使用pip来安装它:

    pip install PyPDF2
    
    • 1

    技术交流

    技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。

    本文文章由粉丝的分享、推荐,资料干货、资料分享、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

    方式①、添加微信号:pythoner666,备注:来自CSDN + 加群
    方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

    打开PDF文件,并读取内容

    让我们从一个简单的示例开始。假设我们有一个名为"sample.pdf"的PDF文件,并且我们想要提取其中的文本内容。

    import PyPDF2
    
    # 打开PDF文件
    pdf_file = open('YOLOv1.pdf', 'rb')
    
    # 创建一个PDF对象
    pdf_reader = PyPDF2.PdfReader(pdf_file)
    
    # 获取PDF文件中的页面数量
    num_pages = len(pdf_reader.pages)
    
    # 创建一个空字符串,用于存储提取的文本
    text = ""
    
    # 循环遍历每一页并提取文本
    for page_num in range(num_pages):
        page = pdf_reader.pages[page_num]
        text += page.extract_text()
    
    # 关闭PDF文件
    pdf_file.close()
    
    # 打印提取的文本
    print(text)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    以上代码将打开名为"YOLOv1.pdf"的PDF文件,遍历每一页并将文本内容提取到一个字符串中。最后,它会打印提取的文本。

    图片

    提取结果

    高级用法

    除了基本的文本提取,PyPDF2还提供了其他功能,例如合并多个PDF文件、旋转页面、添加书签等。让我们详细讨论一些高级用法,并提供相应的代码示例。

    合并多个PDF文件

    有时,您可能需要将多个PDF文件合并成一个文件。PyPDF2允许您执行此操作。

    from PyPDF2 import PdfWriter
    
    merger = PdfWriter()
    
    for pdf in ["M:\YOLOv1.pdf", "M:\YOLOv2.pdf"]:
        merger.append(pdf)
    
    merger.write("M:\merged.pdf")
    merger.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    以上代码将打开名为’YOLOv1.pdf’和’YOLOv1.pdf’的两个PDF文件,将它们的内容合并到一个新的PDF文件’merged.pdf’中。

    旋转页面

    有时,PDF文件中的页面可能需要旋转。使用PyPDF2,您可以旋转页面以适应您的需求。

    import PyPDF2
    
    # 打开PDF文件
    pdf_file = open('M:\YOLOv1.pdf', 'rb')
    
    # 创建PDF对象
    pdf_reader = PyPDF2.PdfReader(pdf_file)
    
    # 创建一个新的PDF对象
    pdf_writer = PyPDF2.PdfWriter()
    
    # 旋转第一页90度
    page = pdf_reader.pages[0]
    page.rotate(90)
    pdf_writer.add_page(page)
    
    # 将未旋转的页面添加到新文件中
    for page_num in range(1, len(pdf_reader.pages)):
        page = pdf_reader.pages[page_num]
        pdf_writer.add_page(page)
    
    # 创建一个新的PDF文件并保存旋转后的内容
    output_pdf = open('M:\YOLOv1-rd.pdf', 'wb')
    pdf_writer.write(output_pdf)
    
    # 关闭所有打开的文件
    pdf_file.close()
    output_pdf.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    以上代码将打开名为’YOLOv1.pdf’的PDF文件,旋转第一页90度,并将旋转后的页面保存到新的PDF文件’YOLOv1-rd.pdf’中。

    添加书签

    您还可以使用PyPDF2在PDF文件中添加书签,以便更轻松地导航和查找内容。

    以上代码将打开名为’YOLOv1.pdf’的PDF文件,将其内容复制到新的PDF文件’YOLOv1-copy.pdf’中,并在第一页和第六页添加了两个书签。

    import PyPDF2
    
    # 打开PDF文件
    pdf_file = open('M:\YOLOv1.pdf', 'rb')
    
    # 创建PDF对象
    pdf_reader = PyPDF2.PdfReader(pdf_file)
    
    # 创建一个新的PDF对象
    pdf_writer = PyPDF2.PdfWriter()
    
    # 循环遍历每一页并将页面添加到新文件中
    for page_num in range(len(pdf_reader.pages)):
        page = pdf_reader.pages[page_num]
        pdf_writer.add_page(page)
    
    # 添加书签
    pdf_writer.add_bookmark('Chapter 1', 0)  # 在第一页添加一个名为"Chapter 1"的书签
    pdf_writer.add_bookmark('Chapter 2', 5)  # 在第六页添加一个名为"Chapter 2"的书签
    
    # 创建一个新的PDF文件并保存带有书签的内容
    output_pdf = open('M:\YOLOv1-copy.pdf', 'wb')
    pdf_writer.write(output_pdf)
    
    # 关闭所有打开的文件
    pdf_file.close()
    output_pdf.close()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    结论

    使用PyPDF2库,您可以轻松地从PDF文件中提取文本,这对于数据分析、信息检索和自动化任务非常有用。希望这篇文章和示例代码有助于您开始使用PyPDF2进行PDF文本提取。如若需要其他高级用法,例如比例调整、放缩等操作,可以访问PyPDF2的官方网站查看其他示例。

  • 相关阅读:
    MySQL之函数
    Liquid Studio 2023.2 Crack
    安装DBD-Oracle报错处理
    Nginx之QPS限制模块解读
    高效并发:Synchornized的锁优化详解
    TortoiseGit安装教程(Windows)
    中文编程开发语言工具开发案例:多种称重方式编程实际例子
    『 C++类与对象 』多继承与虚继承
    MD5加密算法
    选择排序算法的速度测试 [数据结构][Java]
  • 原文地址:https://blog.csdn.net/m0_59596937/article/details/132919077