python 将pdf文件转图片

有小伙伴问了怎么将 pdf文件转图片的问题,我百度了一波儿,搞了以下python代码给他封装成exe工具了。

中途打包踩了个坑,python进程池的问题,本地运行没啥问题,打包好的exe文件双击就会使电脑内存爆破卡死,重新开机才好。

准备工作:

  1. 安装PyMuPDF 直接 pip install PyMuPDF 即可
  2. 在代码当前路径创建一个名为pdf_dir的文件夹,用于存放要转换的pdf 文件

以下是代码实现,支持批量转换,可以放多个pdf文件

python 复制代码
# -*- coding: UTF-8 -*-
import multiprocessing
from multiprocessing import Pool
# 安装fitz需要安装PyMuPDF才能使用
import fitz
import os
import time


tmp = 'pdf_dir'   #pdf路径

export_file = "导出文件"

os.makedirs(export_file, exist_ok=True)
pdf_dir = [i for i in os.listdir(tmp) if os.path.splitext(i)[-1] == ".pdf"]


def pdf_to_jpg(name):
    # 拼接pdf的文件路径
    pwd_name = os.path.join(tmp, name)
    print(pwd_name)
    doc = fitz.open(pwd_name)
    print(1111)
    # 将文件名同我们的保存路径拼接起来(保存图片的文件夹)
    dir_name = os.path.splitext(name)[0]
    pdf_name = os.path.join(export_file, dir_name)
    # print(pdf_name)
    temp = 0
    os.makedirs(pdf_name, exist_ok=True)
    for pg in range(doc.pageCount):
        page = doc[pg]
        temp += 1
        rotate = int(0)
        # 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
        zoom_x = 2.0
        zoom_y = 2.0
        trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
        pm = page.getPixmap(matrix=trans, alpha=False)

        pic_name = '{}.png'.format(temp)
        # 拼接生成pdf的文件路径
        pic_pwd = os.path.join(pdf_name, pic_name)
        print(pic_pwd)
        pm.writePNG(pic_pwd)


def main():
    pool = Pool(10)
    for i in pdf_dir:
        res = pool.apply_async(pdf_to_jpg, (i,))
    pool.close()
    pool.join()


if __name__ == '__main__':
    # 如果要打包成exe供别人使用,要加上下面这行,不然会爆破电脑内存,导致电脑卡死
    multiprocessing.freeze_support()
    st = time.time()
    main()
    end_time = time.time()
    print('总用时:%s'%(end_time-st))

比如我们放了一个pytorch.pdf的文件,直接运行代码

直接就成功了

相关推荐
阿福不是狗35 分钟前
Python使用总结之Mac安装docker并配置wechaty
python·macos·docker
gen_1 小时前
mac环境下的python、pycharm和pip安装使用
python·macos·pycharm
AI视觉网奇1 小时前
pycharm 左右箭头 最近编辑
ide·python·pycharm
思绪无限1 小时前
Pycharm的终端无法使用Anaconda命令行问题详细解决教程
ide·python·pycharm·终端·命令行·anaconda·问题教程
漫步云端-r1 小时前
Pycharm的使用技巧总结
ide·python·pycharm
风逸hhh3 小时前
python打卡day46@浙大疏锦行
开发语言·python
火兮明兮3 小时前
Python训练第四十三天
开发语言·python
互联网杂货铺4 小时前
完美搭建appium自动化环境
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
Gyoku Mint4 小时前
机器学习×第二卷:概念下篇——她不再只是模仿,而是开始决定怎么靠近你
人工智能·python·算法·机器学习·pandas·ai编程·matplotlib
莱茵菜苗5 小时前
Python打卡训练营day46——2025.06.06
开发语言·python