10行代码教你快速批量把pdf转png图片

当你有pdf的矢量图需要转成png这样的位图时,你是怎么做的呢,用WPS开个会员把pdf转成png么?那如果有100张pdf图片需要转png呢......难道要点一百次。今天就教大家怎么用10行代码实现pdf快速转png,安排。
图片
图片
图片

直接上复制粘贴就能用的代码,不用感动,给个点赞+关注哈!

import fitz  # pip install pymupdf -i https://pypi.tuna.tsinghua.edu.cn/simple/
import os

def pdf2img(pdf_path, zoom_x, zoom_y):
    """
    参数说明
    :param pdf_path: pdf文件的路径
    :param zoom_x: x轴方向的缩放系数
    :param zoom_y: y轴方向的缩放系数
    """
    doc = fitz.open(pdf_path)  # 打开pdf文件
    for page in doc:  # 逐页循环
        pic = page.get_pixmap(matrix=fitz.Matrix(zoom_x, zoom_y))  # 将页面渲染为图片
        dir_save = os.path.dirname(pdf_path)  # 结果保存的路径与pdf文件所在的路径同级
        pdf_name = os.path.basename(pdf_path).split('.pdf')[0]
        pic.save(f'{dir_save}/{pdf_name}-page-{page.number+1}.png')  # 逐页将pdf存储为PNG格式
    doc.close()  # 关闭读取pdf文件

pdf2img(
    r"E:\python_projects\python_test\2_pdf2png\test.pdf",
    zoom_x=3,
    zoom_y=3
)

是不是短短几行代码就可以实现你的"一个小目标",上面考虑的是你的pdf中有多页的情况,如果你的一个pdf只有一页,有多个pdf要转png图片,那直接在最外层加个循环就可以了。

import glob
for pdf in glob.glob('./xxx/*pdf'):
    pdf2img(pdf, zoom_x=3, zoom_y=3)

好了,今天就给大家分享这么多,对了,你关注了么!

你可能感兴趣的:(10行代码教你快速批量把pdf转png图片)