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')
相关文章
|
2天前
|
Python
Python办公自动化:删除任意页数pdf页面
Python办公自动化:删除任意页数pdf页面
12 1
Python办公自动化:删除任意页数pdf页面
|
1天前
|
人工智能 小程序 API
文字转语音神器+Python编程搞定语音报时小程序
文字转语音神器+Python编程搞定语音报时小程序
10 2
|
3天前
|
数据采集 开发者 Python
Python之怎么爬取图片网站
Python之怎么爬取图片网站
|
3天前
|
Python
Python实现图片的拼接
Python实现图片的拼接
|
5天前
|
API 语音技术 开发者
用python实现文字转语音的5个较好用的模块
这篇文章介绍了五个Python模块:gtts、pyttsx3、baidu-aip、pywin32和speech,它们能够实现文本到语音的转换功能。
12 1
|
2天前
|
数据安全/隐私保护 Python
Python办公自动化:给pdf加水印
Python办公自动化:给pdf加水印
|
2天前
|
Python
Python办公自动化:提取pdf文件中的图片
Python办公自动化:提取pdf文件中的图片
|
24天前
|
运维 Ubuntu Devops
自动化运维工具的魅力:Ansible入门
【9月更文挑战第5天】在快速变化的IT世界里,自动化运维不再是可选项,而是必需品。Ansible,一款简单却强大的自动化工具,正成为众多DevOps工程师的首选。本文将带你了解Ansible的基本概念、安装步骤以及如何编写简单的Playbook,从而开启你的自动化之旅。
67 36
|
4天前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进之路
在当今数字化时代,运维作为保障企业IT系统稳定运行的关键环节,正经历着前所未有的变革。本文将探讨如何通过实施自动化和引入智能化技术,构建一个更加高效、可靠的运维体系,以应对日益复杂的业务需求和技术挑战。
15 1
|
21天前
|
存储 弹性计算 运维
自动化监控和响应ECS系统事件
阿里云提供的ECS系统事件用于记录云资源信息,如实例启停、到期通知等。为实现自动化运维,如故障处理与动态调度,可使用云助手插件`ecs-tool-event`。该插件定时获取并转化ECS事件为日志存储,便于监控与响应,无需额外开发,适用于大规模集群管理。详情及示例可见链接文档。
下一篇
无影云桌面