form1.cn
Make a little progress every day

Python批量将PDF转为图片文件

09th of December 2022 Python Code 326
# -*- coding: utf-8 -*-

'''
Python批量将PDF转为图片文件
'''

# 导入包
import os
import sys
import fitz


# 定义方法
def pyMuPDF_fitz(pdfPath, imagePath):
    '''转换主函数'''
    pdfDoc = fitz.open(pdfPath)
    for pg in range(pdfDoc.pageCount):
        page = pdfDoc[pg]
        rotate = int(0)
        # 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。
        # 此处若是不做设置,默认图片大小为:792X612, dpi=96
        zoom_x = 1.33333333 
        zoom_y = 1.33333333
        mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
        pix = page.getPixmap(matrix=mat, alpha=False)
        
        if not os.path.exists(imagePath):#判断存放图片的文件夹是否存在
            os.makedirs(imagePath) # 若图片文件夹不存在就创建
        
        pix.writePNG(imagePath+'/'+'images_%s.png' % pg)#将图片写入指定的文件夹内
    print('转换成功: ' + imagePath)
        

if __name__ == '__main__':

    # PDF文件的存放目录
    pdfpath = r'D:\Test\pdf'

    # 转成图片后的保存目录
    imgpath = r'D:\Test\image'

    # 遍历所有PDF文件并转换
    files = os.listdir(pdfpath)
    pptfiles = [f for f in files if f.endswith((".pdf"))]
    for pptfile in pptfiles:
        pdffilepath = os.path.join(pdfpath, pptfile)
        namear = os.path.split(pdffilepath)
        minimgpath = namear[1].replace(".pdf","")
        minimgpath = os.path.join(imgpath, minimgpath)
        # 执行转换方法
        pyMuPDF_fitz(pdffilepath, minimgpath)