昨天在公司需要把一份PDF格式认证表转换为图片JPEG格式,所以在网上查询了一些与此相关的python库,最后看网上大多都是使用Wand和PyMuPDF,在安装了Wand库后,导入相应的模块后报错了,好像要安装什么依赖项,最后选择了PyMuPDF,下载库文件就可以直接用。
1、下载PyMuPDF库文件
pip install PyMuPDF
2、源文件贴上
import os import fitz # 导入的是fitz if __name__ == '__main__': base_path = input("请输入要转换的文件路径:") # 输入要转换的PDF所在的文件夹 filenames = os.listdir(base_path) # 获取PDF文件列表 for filename in filenames: full_path = os.path.join(base_path, filename) # 拼接,得到PDF文件的绝对路径 print(full_path) doc = fitz.open(full_path) # 打开一个PDF文件,doc为Document类型,是一个包含每一页PDF文件的列表 rotate = int(0) # 设置图片的旋转角度 zoom_x = 2.0 # 设置图片相对于PDF文件在X轴上的缩放比例 zoom_y = 2.0 # 设置图片相对于PDF文件在Y轴上的缩放比例 trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate) print("%s开始转换..." % filename) if doc.pageCount > 1: # 获取PDF的页数 for pg in range(doc.pageCount): page = doc[pg] # 获得第pg页 pm = page.getPixmap(matrix=trans, alpha=False) # 将其转化为光栅文件(位数) new_full_name = full_path.split(".")[0] # 保证输出的文件名不变 pm.writeImage("%s%s.jpg" % (new_full_name, pg)) # 将其输入为相应的图片格式,可以为位图,也可以为矢量图
# 我本来想输出为jpg文件,但是在网页中都是png格式(即调用writePNG),再转换成别的图像文件前,最好查一下是否支持 else: page = doc[0] pm = page.getPixmap(matrix=trans, alpha=False) new_full_name = full_path.split(".")[0] pm.writeImage("%s.jpg" % new_full_name) print("%s转换完成!" % filename)
3、PyMuPDF文档