• 正文
  • 相关推荐
申请入驻 产业图谱

用python把pdf转成jpeg图片

10/13 09:01
685
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

记录一下用python pdf2image把pdf转成jpeg图片的方法。

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

一、安装插件

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

再安装python插件pdf2image。

yum install poppler-utilspip3 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 osimport refrom 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)

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录