Python解析pdf模块之--PyMuPDF(fitz)

部署运行你感兴趣的模型镜像

前言

PDF分类:文本(可复制)、纯图片

一、文本类型的pdf

可通过以下方式解析其内容

import fitz

def preprocess(text):
    text = text.replace('\n', ' ')
    text = re.sub('\s+', ' ', text)
    return text

def parse_pdf_text(path):
    doc = fitz.open(path)
    total_pages = doc.page_count
    text_list = []

    for i in range(total_pages):
        page = doc.load_page(i)
        text = page.get_text()
        text = preprocess(text)
        text_list.append(text)
    doc.close()
    return text_list

二、图片类型pdf

本示例仅展示将pdf中的图片提取出来,想识别其中的内容需要用到ocr

def parse_pdf_img(path):
     doc = fitz.open(path)
     for i in range(doc.page_count):
         page = doc.load_page(i)
         image_list = page.get_images(full=True)  # 获取页面中的所有图片

         for img_index, img in enumerate(image_list):
             xref = img[0]  # 获取图片的引用号
             base_image = doc.extract_image(xref)  # 提取图片
             image_bytes = base_image["image"]  # 获取图片的字节数据
             image_ext = base_image["ext"]  # 获取图片的扩展名

             # 保存图片到文件
             image_filename = f"page_{i + 1}_img_{img_index}.{image_ext}"
             with open(image_filename, "wb") as image_file:
                 image_file.write(image_bytes)
             print(f"Saved image: {image_filename}")
     doc.close()

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值