1.单个PDF文件转化为图片:
# -*- coding: utf-8 -*-
import fitz
_author_ = '张起凡'
import datetime
import os
# fitz就是pip install PyMuPDF
def pyMuPDF_fitz(pdfPath, imagePath):
startTime_pdf2img = datetime.datetime.now() # 开始时间
print("imagePath=" + 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 = 4 # (1.33333333-->1056x816) (2-->1584x1224)
zoom_y = 4
mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
rect = page.rect
clip = fitz.Rect(rect.tl + 15, rect.br - 13)
pix = page.getPixmap(matrix=mat, alpha=False, clip=clip)
if not os.path.exists(imagePath): # 判断存放图片的文件夹是否存在
os.makedirs(imagePath) # 若图片文件夹不存在就创建
pix.writePNG(imagePath + '/' + 'images_%s.jpg' % pg) # 将图片写入指定的文件夹内
endTime_pdf2img = datetime.datetime.now() # 结束时间
print('pdf2img时间=', (endTime_pdf2img - startTime_pdf2img).seconds)
if __name__ == "__main__":
# 1、PDF地址
pdfPath = r"D:\图纸识别\中核\设计院CAM系统设计输入\设计院-FD图--1418YCAMYKS62-D.pdf"
# 2、需要储存图片的目录
imagePath = r"D:\图纸识别\中核\设计院CAM系统设计输入\图纸识别图片\设计院-FD图\jpg格式"
pyMuPDF_fitz(pdfPath, imagePath)
2.批量PDF转化为图片:
# -*- coding: utf-8 -*-
import fitz
_author_ = '张起凡'
import glob
import datetime
import os
# fitz就是pip install PyMuPDF
def pyMuPDF_fitz(pdfPath, imagePath, count):
startTime_pdf2img = datetime.datetime.now() # 开始时间
print("pdfPath=" + pdfPath)
print("imagePath=" + 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 = 4 # (1.33333333-->1056x816) (2-->1584x1224)
zoom_y = 4
mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
rect = page.rect
clip = fitz.Rect(rect.tl + 15, rect.br - 13)
pix = page.getPixmap(matrix=mat, alpha=False, clip=clip)
if not os.path.exists(imagePath): # 判断存放图片的文件夹是否存在
os.makedirs(imagePath) # 若图片文件夹不存在就创建
pix.writePNG(imagePath + '/' + 'images_%s_%s.jpg' % (count, pg)) # 将图片写入指定的文件夹内
endTime_pdf2img = datetime.datetime.now() # 结束时间
print('pdf2img时间=', (endTime_pdf2img - startTime_pdf2img).seconds)
if __name__ == "__main__":
# 1、PDF地址
pdfPath = r"D:\图纸识别\中核\设计院CAM系统设计输入"
# 2、需要储存图片的目录
imagePath = r"D:\图纸识别\中核\设计院CAM系统设计输入\PDF1"
# 3.文件后缀数字
count = 1
# 4.获取文件
files = glob.glob(pdfPath + r'\*.pdf')
# 5.循环调用函数进行转化
for file in files:
pyMuPDF_fitz(file, imagePath, count)
count = count + 1
效果如下,保存图片的格式可自行转换: