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')
相关文章
|
8月前
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
443 0
|
7月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
552 3
|
7月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
1851 0
|
8月前
|
程序员 数据安全/隐私保护 Python
1行Python代码,实现PDF的加密、解密
程序员晚枫分享使用python-office库实现PDF批量加密与解密的新方法。只需一行代码,即可完成单个或多个PDF文件的加密、解密操作,支持文件路径与正则筛选,适合自动化办公需求。更新至最新版,适配性更佳,操作更简单。
313 8
1行Python代码,实现PDF的加密、解密
|
9月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
8月前
|
监控 Linux 数据安全/隐私保护
Python实现Word转PDF全攻略:从入门到实战
在数字化办公中,Python实现Word转PDF自动化,可大幅提升处理效率,解决格式兼容问题。本文详解五种主流方案,包括跨平台的docx2pdf、Windows原生的pywin32、服务器部署首选的LibreOffice命令行、企业级的Aspose.Words,以及轻量级的python-docx+pdfkit组合。每种方案均提供核心代码与适用场景,并涵盖中文字体处理、表格优化、批量进度监控等实用技巧,助力高效办公自动化。
1752 0
|
9月前
|
数据采集 存储 监控
Python爬虫实战:批量下载亚马逊商品图片
Python爬虫实战:批量下载亚马逊商品图片
|
6月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
1075 62
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
7月前
|
运维 Linux 网络安全
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
232 4