python实现PDF转PNG

说明
为了方便将pdf格式发票转为图片,找到以下方法,转换后的效果非常不错,特此记录在自己的笔记中,根据自己的需要,代码稍微有所优化修改

参考网址:https://zhuanlan.zhihu.com/p/102742847

三方库安装

pip install fitz
pip install PyMuPDF

代码示例

import os
import fitz


def pdf_to_image(pdf_path, img_path=None, zoom_x=5, zoom_y=5, theta=0):
    """
    PDF转PNG
    :param pdf_path: pdf文件的路径
    :param img_path: 图像要保存的文件夹
    :param zoom_x: x方向的缩放系数
    :param zoom_y: y方向的缩放系数
    :param theta: 旋转角度
    :return: dst_path
    """
    if not img_path:
        img_path = os.path.abspath(os.path.join(pdf_path, '../'))

    with fitz.open(pdf_path) as pdf:
        name = os.path.basename(pdf.name)
        file_name = name.split('.')[0]
        page = pdf[0]
        # 设置缩放和旋转
        trans = fitz.Matrix(zoom_x, zoom_y).preRotate(theta)
        pm = page.getPixmap(matrix=trans, alpha=False)
        dst_path = f'{img_path}/{file_name}.png'
        # 保存
        pm.writePNG(dst_path)

    return dst_path
posted @ 2021-04-05 14:20  Rong_Z  阅读(1117)  评论(0编辑  收藏  举报