目录
一、要求
fitz==0.0.1.dev2
二、代码实现
import fitz
import os
from zqy_ocr.common.conf import parent_path_is_exites
def pdf2imags(filepath,outpath):
global father_dir
try:
pdf = fitz.Document(filepath)
for i,pg in enumerate(range(0, pdf.pageCount)):
# 获得每一页的对象
page = pdf[pg]
trans = fitz.Matrix(3.0, 3.0).preRotate(0)
# 获得每一页的流对象
pm = page.getPixmap(matrix=trans, alpha=False)
# 获取文件名
filename = os.path.basename(filepath).split(".")[0]
# 拼接输出文件目录
img_path = fr'{outpath}\{filename}_imgs\{filename}_{i+1}.png'
# 若pdf有多张照片,只判断一次即可。
if i == 0:
# 查看拼接的父目录是否存在,不存在创建
father_dir = parent_path_is_exites(img_path,log)
# 保存图片
pm.writePNG(img_path)
pdf.close()
print("\n")
print(f"The pdf2imgs result in {father_dir}")
except Exception as e:
print(f"pdf2imgs.py error , info:{e}")
return 'False'
else:
return father_dir
if __name__ == '__main__':
path = r'D:\Gitlab\ocr\OCR\img_set\九江银行\222.pdf'
out_path = r'D:\Gitlab\ocr\OCR\img_set\九江银行'
pdf2imags(path,out_path)
三、结果输出
在原文件的同级目录创建一个以原文件名称+'_imgs'命名的文件夹,里面存放pdf中每一页的图片。