1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python 遍历文件夹PDF并转换成图片

python 遍历文件夹PDF并转换成图片

时间:2022-04-13 20:02:52

相关推荐

python 遍历文件夹PDF并转换成图片

这里写自定义目录标题

-*- 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’])

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。