• Python 提取PDF文本和图片


    从PDF中提取内容能帮助我们获取文件中的信息,以便进行进一步的分析和处理。此外,在遇到类似项目时,提取出来的文本或图片也能再次利用。要在Python中通过代码提取PDF文件中的文本和图片,可以使用 Spire.PDF for Python 这个第三方库。具体操作方法查阅下文。

    • Python 提取PDF文本
    • Python 提取PDF页面中指定矩形区域的文本
    • Python 提取PDF图片

     

    安装 Spire.PDF for Python

    本文中用到的Python PDF库支持在各种 Python 程序中创建、读取、编辑、转换和保存 PDF 文档。要安装此产品,可使用以下 pip 命令。

    pip install Spire.PDF

    要了解详细安装教程,参考: 如何在 VS Code 中安装 Spire.PDF for Python

     

    使用 Python 提取PDF文本

    Spire.PDF for Python 提供的 PdfPageBase.ExtractText() 方法能提取一个 PDF 页面中文本。根据你的具体需求,你可以选择仅提取某页中的文本,或者遍历所有页面以提取整个PDF文件中的文本。完整Python代码如下:

    复制代码
    from spire.pdf import *
    from spire.pdf.common import *
    
    # 创建PdfDocument类的实例
    pdf = PdfDocument()
    
    # 加载PDF文档
    pdf.LoadFromFile("大数据.pdf")
    
    # 创建一个TXT文件来保存提取的文本
    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()
    复制代码

     

    使用 Python 提取PDF页面中指定矩形区域的文本

    如果你只需要提取某个PDF页面中指定区域的文本,你可以指定一个矩形范围然后使用 PdfPageBase.ExtractText(RectangleF 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(0.0, 400.0, 770.0, 180.0))
    
    # 将提取的文本保存到TXT文件中
    extractedText = open("Output/PDF文本.txt", "w", encoding="utf-8")
    extractedText.write(text)
    extractedText.close()
    pdf.Close()
    复制代码

     

    使用 Python 提取PDF图片

    除了提取文本外,Spire.PDF for Python 还提供了 PdfPageBase.ExtractImages() 方法来提取PDF文件中的图片。要提取一个PDF文件中的所有图片并保存到指定路径,参考以下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()
    复制代码

     

  • 相关阅读:
    Windows 下使用 cmake 构建工程
    没有执行力,一切都是空谈!如何提高执行力
    父域 Cookie实现sso单点登录
    【联合出版】2022年交通与智慧城市国际会议(ICoTSC 2022)
    知识图谱实战导论:从什么是KG到LLM与KG/DB的结合实战
    爬虫----记录某新闻详情页app逆向过程(app逆向初学第一次实战)
    面试官都震惊,你这网络基础可以啊!
    GreenPlum6.x之测试数据
    为什么说 HashMap 是无序的
    Ubuntu16.04 设置静态 ip
  • 原文地址:https://www.cnblogs.com/Yesi/p/17754956.html