这里写自定义目录标题
-*- coding: utf-8 -*-参考各路大神得出
-- coding: utf-8 --
import sys, fitz
import os
import datetime
import re
def get_file_list(dir, file_type_list=[‘pdf’,‘txt’, ‘csv’, ‘xlsx’, ‘xls’], file_list=[]):
‘’‘获取指定文件夹下指定类型文件路径
:param dir: 文件夹路径
:param file_type_list: 文件类型
:param file_list: 文件列表 ‘’’
for root, _, files in os.walk(dir):
for file in files:
file_type = file[file.rfind(’.’) + 1:]
if file_type in file_type_list:
file_list.append(os.path.join(root, file))
return file_list
def get_file_name(path_string):
“”“获取文件名称,不含后缀”""
pattern = pile(r’([^<>/\|:""*?]+).\w+$’)
data = pattern.findall(path_string)
if data:
return data[0]
def pyMuPDF_fitz(file_dir_path, out_file_path,file_type_list=[‘pdf’,‘txt’, ‘csv’, ‘xlsx’, ‘xls’]):
startTime_pdf2img = datetime.datetime.now()#开始时间
if not os.path.exists(out_file_path):#判断输出文件夹是否存在os.makedirs(out_file_path) # 若不存在就创建print("imagePath="+out_file_path)file_paths = get_file_list(file_dir_path, file_type_list)#获取文件列表n=0t=0for file in file_paths:n=n+1pdfDoc = fitz.open(file)print("convert File="+file)m=0for pg in range(pdfDoc.pageCount):page = pdfDoc[pg]rotate = int(0)# 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。# 此处若是不做设置,默认图片大小为:792X612, dpi=72zoom_x =2# 1.33333333 #(1.33333333-->1056x816) (2-->1584x1224)zoom_y =2# 1.33333333mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)pix = page.getPixmap(matrix=mat, alpha=False)pix.writePNG(out_file_path+'/'+get_file_name(file)+'_images_%s.png' % pg)#将图片写入指定的文件夹内m=m+1t=t+1print("convert File="+file,m,'pages finished.')endTime_pdf2img = datetime.datetime.now()#结束时间print('pdf2img时间=',(endTime_pdf2img - startTime_pdf2img).seconds,'秒, 共',n,'个文件已转换完成',t,'图片。')
ifname== “main”:
pdfPath = ‘./forConvert’#相对路径
imagePath = ‘./path/image’
pyMuPDF_fitz(pdfPath,imagePath, [‘pdf’])