文字识别 OCR
文字识别 OCR
- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- API参考
- SDK参考
- 场景代码示例
- 最佳实践
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
本文导读
展开导读
链接复制成功!
pdf转图片方法
# -*- coding: utf-8 -*- import os import base64 import fitz import io from PIL import Image from glob import glob class CovertPdfToJpg: def __init__(self, file_path, save_root): self.file_path = file_path self.save_root = save_root @staticmethod def open_pdf(file): return fitz.open(file) @staticmethod def get_trans(doc, page, min_side=0, max_side=0, rotate=0.0): """ 创建scale对象 """ region = doc[page].rect scale = 1 if max_side > min_side > 0: scale = min_side / min(region.width, region.height) if max(region.width, region.height) * scale > max_side: scale = max_side / max(region.width, region.height) trans = fitz.Matrix(scale, scale).preRotate(rotate) return trans def page2pix(self, doc, page, trans): """ 根据给定的参数,解析当前页作为图片数据 """ # 获取指定页面的pdf格式,注意:页面参数是事先解析出来的,不然会存在问题。 return doc[page].getPixmap(matrix=trans, alpha=False) def pdf_to_jpg(self, width=1024, height=1400): doc = self.open_pdf(self.file_path) save_dir = os.path.join(self.save_root) if not os.path.exists(save_dir): os.makedirs(save_dir) print("document", len(doc), doc.pageCount) for i in range(len(doc)): trans = self.get_trans(doc, i, width, height, rotate=0) try: pdf = self.page2pix(doc, i, trans) except: continue image = pdf.getPNGData() image = Image.open(io.BytesIO(image)) print(os.path.join( save_dir, os.path.basename(self.file_path).replace('.pdf', '') + '_' + str(i + 1) + '.jpg')) image.save( os.path.join(save_dir, os.path.basename(self.file_path).replace('.pdf', '') + '_' + str(i + 1) + '.jpg')) return
父主题: API使用类