一、 安装库 pip install pymupdf
二、 源码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '孙思锴'
import os
import shutil
import fitz
def conver_img(pdfFilepath, outputPath):
"""
pdf转换PNG图片
:param pdfFilepath: pdf文档路径
:param outputPath: pdf输出路径
:return:
"""
pdfFilepath = os.path.abspath(pdfFilepath)
outputPath = os.path.abspath(outputPath)
if not os.path.exists(pdfFilepath):
# 检查文件是否存在
print('文件不存在!', pdfFilepath)
if os.path.abspath(outputPath):
shutil.rmtree(outputPath)
os.makedirs(outputPath)
# 获取文件同名目录和类型
pdfNameAll = os.path.basename(pdfFilepath) # 返回文件名包括后缀
pdfName, extension = os.path.splitext(pdfNameAll)
# 读取文件
doc = fitz.open(pdfFilepath)
for page_index in range(doc.pageCount):
page = doc[page_index] # 逐页读取pdf
# 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
zoom_x, zoom_y = 2.0, 2.0
trans = fitz.Matrix(zoom_x, zoom_y) # .preRotate(0) # .preRotate(rotate)是执行一个旋转
pm = page.getPixmap(matrix=trans, alpha=False)
imagePath = os.path.join(outputPath, str(page_index) + '.png') # 图像保存路径
pm.writePNG(imagePath)
if __name__ == '__main__':
pdfPath = r'E:\Workspace\PycharmProjects\Python学习\合同文档比对\测试文档\测试文档-300dpi.pdf'
outputPath = r"E:\桌面\新建文件夹 (2)"
conver_img(pdfPath, outputPath)
三、运行结果