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)
AI 代码解读

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')
AI 代码解读

使用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')
AI 代码解读
目录
打赏
0
0
0
0
1634
分享
相关文章
【工具教程】批量PDF和图片OCR识别指定区域文字自动改图片名字,多个区域一次性批量识别改名批量重命名
本内容介绍了一款用于企业档案、医院病历及办公文件管理的图片和PDF文字识别工具。通过框选识别区域,软件可批量提取关键信息,实现文件重命名或导出为表格,极大提升管理效率。支持图片与PDF两种模式,操作简单,适用于合同、病历、报告等场景。提供详细步骤指导,包含区域设置、文件导入、批量处理及结果校验等功能。
120 8
1.6K star!这个开源文本提取神器,5分钟搞定PDF/图片/Office文档!
Kreuzberg 是一个基于 Python 的文本提取库,支持从 PDF、图像、Office 文档等 20+ 格式中提取文本内容。采用 MIT 开源协议,具备本地处理、异步架构、智能 OCR 等特性,特别适合需要隐私保护的文档处理场景。
|
5月前
|
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
392 61
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
Python自动化Office文档处理全攻略
本文介绍如何使用Python自动化处理Word、Excel和PDF文档,提升办公效率。通过安装`python-docx`、`openpyxl`、`pandas`、`PyPDF2`和`pdfplumber`等库,可以轻松实现读取、修改、创建和批量处理这些文档。具体包括:自动化处理Word文档(如读取、修改内容、调整样式),Excel文档(如读取、清洗、汇总数据),以及PDF文档(如提取文本和表格数据)。结合代码示例和实战案例,帮助你掌握高效办公技巧,减少手动操作的错误率。
121 1
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
161 16
Python时间序列分析:使用TSFresh进行自动化特征提取
对双栏 | 单双栏混合 | 图表文字混合的复杂布局的图片OCR识别(对布局复杂的整个pdf进行OCR识别)
这个故事告诉我们要多尝试不同的库和引擎,尤其是需求比较偏门或者少见的时候。同一个方向不同的库所擅长的领域是不一样的。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
279 8
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
333 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式

热门文章

最新文章