Python PyMuPDF 提取PDF文件中的图片到指定目录保存,PDF将每一页都保存为图片

代码

PyMuPDF的版本不同,似乎方法也不同,所以建议指定一个版本。

安装:

pip install PyMuPDF==1.21.1

代码:

import os
import fitz

# 提取每一页的图片对象单独保存
def muExtractImages(pdf_name, pic_save_path):
    doc = fitz.open(pdf_name)
    for itm,page in enumerate(doc):
        try:
            tupleImage = page.get_images()
            for xref0 in tupleImage:  # 取第一个元组
                xref = xref0[0]  # 最终取得xref  ok
                img = doc.extract_image(xref)  # 获取文件扩展名,图片内容 等信息
                imageFilename = os.path.join(pic_save_path, str(itm) + '_' + str(xref) + '.' + img['ext'])
                imgout = open(imageFilename, 'wb')  # byte方式新建图片
                imgout.write(img["image"])  # 当前提取的图片写入磁盘
                imgout.close()
        except:
            continue
    doc.close()


# 将每一页作为图片,保存到某个目录
def pdf_image(pdf_name, pic_save_path):
    img_paths = []
    doc = fitz.open(pdf_name)
    for i, pg in enumerate(doc.pages()):
        page = pg  # 获得每一页的对象
        trans = fitz.Matrix(3.0, 3.0)
        pm = page.get_pixmap(matrix=trans, alpha=False)  # 获得每一页的流对象
        img_path = str(i + 1) + '.jpg'
        img_path = os.path.join(pic_save_path, img_path)
        pm.save(img_path)
        img_paths.append(img_path)
    doc.close()
    return img_paths


if __name__ == '__main__':
    file_path = r'F:\BaiduNetdiskDownload\语文-状元笔记\语文-状元笔记\1.pdf'  # pdf_name 文件路径
    dir_path = r'F:\BaiduNetdiskDownload\语文-状元笔记\语文-状元笔记\1'  # 存放图片的文件夹
    muExtractImages(file_path, dir_path)


PyMuPDF介绍

PyMuPDF是一个用于操作PDF文件的Python库。它是基于MuPDF库的Python绑定,提供了一组高级功能,可以用于读取,修改和写入PDF文件。

主要特性:

支持多种PDF版本,包括PDF 1.7(Acrobat 8.0)
支持读取加密和签名的PDF文件
支持修改PDF文件的内容,包括文本,图像,链接和表单
支持创建新的PDF文件或合并现有的PDF文件
支持渲染PDF页面为图像,包括多种格式(如PNG,JPEG,TIFF)
支持对PDF文件进行搜索和提取文本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值