用python把pdf转成jpeg图片
专栏:ExASIC Sept. 18, 2025, 11:48 a.m. 10 阅读
记录一下用python pdf2image把pdf转成jpeg图片的方法

尝试过PyMuPDF,但在linux环境下安装失败。改用pdf2image,成功了,下面记录一下。

一、安装插件

首先安装poppler-utils(https://poppler.freedesktop.org)。poppler-utils是pdf处理的命令行工具集,其中包括了pdf转图片的功能。

再安装python插件pdf2image。

yum install poppler-utils
pip3 install pdf2image

二、转换函数convert_from_path

convert_from_path是最常用的转换函数,pdf_path指定pdf的路径和文件名,first_pagelast_page指定要转换图片的pdf页码范围。这个函数的返回值是pdf每页转成PIL Image的列表。最后用PIL Image的save()保存图片。

convert_from_path(
pdf_path,           #pdf文件
dpi=200,  
output_folder=None, #图片输出到指定目录
first_page=None,    #pdf转图片的起始页
last_page=None,     #pdf转图片的结束页
fmt='ppm', 
jpegopt=None, 
thread_count=1, 
userpw=None, 
use_cropbox=False, 
strict=False, 
transparent=False, 
single_file=False, 
output_file=str(uuid.uuid4()), 
poppler_path=None, 
grayscale=False, 
size=None, 
paths_only=False, 
use_pdftocairo=False, 
timeout=600, 
hide_attributes=False
)

三、一个例子

下面是一个例子,把当前目录下所有的pdf文件的第三页转成图片。

#!/usr/bin/python3

import os
import re
from pdf2image import convert_from_path

# 转换pdf的前三页为jpeg图片
def convert_pdf2image(pdf_path):
    pdf_file_name = pdf_path[:-4]
    
    images = convert_from_path(pdf_path, first_page=0, last_page=3, fmt='jpeg')
    print(len(images))
    for i, image in enumerate(images):
        image.save(f"{pdf_file_name}_pdf2image_{i}.jpg", 'JPEG')

# 对当前目录下所有的pdf文件都进行转换
for f in os.listdir("."):
    if re.search(r'.*\.pdf', f):
        convert_pdf2image(f)

 

感谢阅读,更多文章点击这里:【专栏:ExASIC】
最新20篇 开设专栏