python 批量pdf转图片,pdf to img

728 阅读1分钟

初始版本(参考别人代码改的) 注意是python3,注意插件版本

import datetime
import os

import fitz  # fitz就是pip install PyMuPDF v1.20.2


def pyMuPDF_fitz(pdfPath, imagePath,fileName):
    startTime_pdf2img = datetime.datetime.now()  # 开始时间

    print("imagePath=" + imagePath)
    pdfDoc = fitz.open(pdfPath)
    for pg in range(pdfDoc.page_count):
        page = pdfDoc[pg]
        rotate = int(0)
        # 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。
        # 此处若是不做设置,默认图片大小为:792X612, dpi=96
        zoom_x = 1.33333333  # (1.33333333-->1056x816)   (2-->1584x1224)
        zoom_y = 1.33333333
        mat = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate)
        pix = page.get_pixmap(matrix=mat, alpha=False)

        if not os.path.exists(imagePath):  # 判断存放图片的文件夹是否存在
            os.makedirs(imagePath)  # 若图片文件夹不存在就创建
        print(pg)
        if (pg != 0) :
            pix._writeIMG(imagePath + '/' + fileName+'_'+str(pg)+'.png',1)
        else:
            pix._writeIMG(imagePath + '/' + fileName+'.png',1)  # 将图片写入指定的文件夹内

    endTime_pdf2img = datetime.datetime.now()  # 结束时间
    print('pdf2img时间=', (endTime_pdf2img - startTime_pdf2img).seconds)


if __name__ == "__main__":
    pdfPath = 'D:\MyHub\invoice\医院'        #!!!需要修改的文件所在的路径
    pdf_name = os.listdir(pdfPath) #读取文件初始的名字
    #print(pdf_name) 
    for i in pdf_name:    #遍历全部文件
        fileName = i.split('.pdf')[0]
        fileName = fileName.split('.PDF')[0]
        pdf_fullName = pdfPath+'\\'+i
        imagePath = r'D:\MyHub\invoice\医院img' #!!!取出图片后的位置
        pyMuPDF_fitz(pdf_fullName, imagePath,fileName)
        # 1、PDF地址
        #pdfPath = r'D:\MyHub\invoice\invoicePdf'
        # 2、需要储存图片的目录
        #imagePath = r'D:\MyHub\invoice\invoiceImg'
        #pyMuPDF_fitz(pdfPath, imagePath)





但是,还是不要让用户自行填写文件路径,因为那样会降低执行的成功率, 所以需要加一个从资源管理器选择文件的插件,待改....

(25条消息) python 弹窗选择文件并获取文件路径_大雾的小屋的博客-CSDN博客_python 弹窗选择文件