python自动化系列之提取pdf文字和图片

简介: python自动化系列之提取pdf文字和图片

在python中有许多开源的库可以处理Pdf文档,最常用的Pypdf2库可以读取文档,合并,分割pdf文档,但是也有局限性:

无法提取文档中的文字

提取PDF文字需要使用另外的库,如pdfplumbe
提取PDF中的图片需要使用fitz库

使用pdfplumbe提取文字

pdfplumbe使用可以用来解析PDF文件,获取其文本内容、标题、表格等的开源工具;
开源代码地址:https://github.com/jsvine/pdfplumber

安装pdfplumbe:

pip install pdfplumbe

引入:

import pdfplumbe

简单使用代码示例:

filepath = 'H:/test_w.pdf'

def extract_text_info(filepath):
    """
    提取PDF中的文字
    @param filepath:文件路径
    @return:
    """
    with pdfplumber.open(filepath) as pdf:
        # 获取第2页数据
        page = pdf.pages[3]
        print(page.extract_text()) #提取文字
        table = page.extract_tables() #提取表格
        print(table)
        for row in table:
            print(row)

pdfplumber提供了两种读取pdf的方式:

pdfplumber.open("path/to/file.pdf")
pdfplumber.load(file_like_object)

这两种方法都返回pdfplumber.PDF类的实例(instance)。
加载带密码的pdf需要传入参数password,例如:

pdfplumber.open("file.pdf", password = "test")

fitz的简单使用

使用fitz需要同时安装fitz和PyMuPDF,否则会报错

安装:

pip install fitz PyMupdf

引入:

import fitz

使用fitz将pdf转为图片:

def pdf2img():
    import fitz
    '''pdf转图片'''
    with fitz.open(filepath) as doc:
        for page in doc:
            mat = fitz.Matrix(2,2)
            pix = page.get_pixmap(matrix= mat)
            pix.save(f'H:/{page.number}.png')

使用fitz转换图片

image.png

使用fitz添加pdf的文本注释

def update():
    import fitz
    '''添加文本注释为关键词添加高亮、删除线、下划线注释'''
    word1,word2,word3 = ('高亮','删除线','注释')
    with fitz.open(filepath) as doc:
        for page in doc:
            page.add_text_annot((200,200),'文本注释')
            for txt in page.search_for(word1):
                page.add_highlight_annot(txt)
            for txt in page.search_for(word2):
                page.add_strikeout_annot(txt)
            for txt in page.search_for(word3):
                page.add_underline_annot(txt)
        doc.save('H:\\添加注释.pdf')
相关文章
|
1月前
|
文字识别 BI
【工具教程】批量PDF和图片OCR识别指定区域文字自动改图片名字,多个区域一次性批量识别改名批量重命名
本内容介绍了一款用于企业档案、医院病历及办公文件管理的图片和PDF文字识别工具。通过框选识别区域,软件可批量提取关键信息,实现文件重命名或导出为表格,极大提升管理效率。支持图片与PDF两种模式,操作简单,适用于合同、病历、报告等场景。提供详细步骤指导,包含区域设置、文件导入、批量处理及结果校验等功能。
155 8
|
1月前
|
文字识别 程序员 UED
Python + 腾讯云,多页PDF发票识别一键搞定!
程序员晚枫团队推出了基于Python和腾讯云的多页PDF发票识别功能!通过一行代码即可实现整本PDF发票的高效识别,并直接导出为Excel文件,极大提升工作效率。此次更新修复了仅识别第一页的bug,支持多页PDF完整识别。未来还将拓展更多票据类型、优化速度并加强平台合作。欢迎用户体验并提出建议,共同推动开源项目poocr的成长与进化!
|
2月前
|
人工智能 文字识别 自然语言处理
1.6K star!这个开源文本提取神器,5分钟搞定PDF/图片/Office文档!
Kreuzberg 是一个基于 Python 的文本提取库,支持从 PDF、图像、Office 文档等 20+ 格式中提取文本内容。采用 MIT 开源协议,具备本地处理、异步架构、智能 OCR 等特性,特别适合需要隐私保护的文档处理场景。
|
2月前
|
文字识别 UED Python
对双栏 | 单双栏混合 | 图表文字混合的复杂布局的图片OCR识别(对布局复杂的整个pdf进行OCR识别)
这个故事告诉我们要多尝试不同的库和引擎,尤其是需求比较偏门或者少见的时候。同一个方向不同的库所擅长的领域是不一样的。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
3月前
|
文字识别 BI
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
332 8
|
4月前
|
机器学习/深度学习 人工智能 文字识别
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
359 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
|
5月前
|
JavaScript
jquery图片和pdf文件预览插件
EZView.js是一款jquery图片和pdf文件预览插件。EZView.js可以为图片和pdf格式文件生成在线预览效果。支持的文件格式有pdf、jpg、 png、jpeg、gif。
141 16
|
5月前
|
编解码 人工智能 文字识别
用PDF转换图片的方式弥补通义千问在扫描版PDF支持方面的缺失
当前通义千问Web版和本地版qwen-VL在处理扫描版PDF时均无法直接识别,导致实际应用中处理大量扫描PDF的需求难以满足。为此,通过使用Python的pdf2image库,可将PDF文件转换为图片,再进行OCR处理,实现解决方案。文中提供了具体的代码示例,展示了如何将PDF文件的每一页转换成图片,并保存至指定文件夹,为后续的OCR处理做好准备。
|
7月前
|
Python
Python对PDF文件页面的旋转和切割
Python对PDF文件页面的旋转和切割
122 3
|
7月前
|
计算机视觉 Python
Python操作PDF文件
Python操作PDF文件
102 1

热门文章

最新文章