建设网站江西,如何制作简单网页,想开一家公司需要多少钱,企业营销策划实现的途径有小伙伴问了怎么将 pdf文件转图片的问题#xff0c;我百度了一波儿#xff0c;搞了以下python代码给他封装成exe工具了。
中途打包踩了个坑#xff0c;python进程池的问题#xff0c;本地运行没啥问题#xff0c;打包好的exe文件双击就会使电脑内存爆破卡死#xff0c;…有小伙伴问了怎么将 pdf文件转图片的问题我百度了一波儿搞了以下python代码给他封装成exe工具了。
中途打包踩了个坑python进程池的问题本地运行没啥问题打包好的exe文件双击就会使电脑内存爆破卡死重新开机才好。
准备工作
安装PyMuPDF 直接 pip install PyMuPDF 即可在代码当前路径创建一个名为pdf_dir的文件夹用于存放要转换的pdf 文件
以下是代码实现支持批量转换可以放多个pdf文件
# -*- coding: UTF-8 -*-
import multiprocessing
from multiprocessing import Pool
# 安装fitz需要安装PyMuPDF才能使用
import fitz
import os
import timetmp pdf_dir #pdf路径export_file 导出文件os.makedirs(export_file, exist_okTrue)
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 0os.makedirs(pdf_name, exist_okTrue)for pg in range(doc.pageCount):page doc[pg]temp 1rotate int(0)# 每个尺寸的缩放系数为2这将为我们生成分辨率提高四倍的图像。zoom_x 2.0zoom_y 2.0trans fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)pm page.getPixmap(matrixtrans, alphaFalse)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的文件直接运行代码
直接就成功了