admin管理员组

文章数量:1630197

依据pdf2image批量将pdf文件转换成png图片!

文章目录

  • 1. 安装pdf2image
  • 2. 导入环境变量
  • 3. Python代码
  • 4. 参考文章

  • 提取图片或将每个页面从PDF保存为JPG:https://smallpdf/cn/pdf-to-jpg

1. 安装pdf2image

  • 首先安装pdf2image包:
conda install -c conda-forge poppler
pip install pdf2image
# 或者直接:
conda install pdf2image

2. 导入环境变量

  • pdf2image是包装器,poppler是转换过程真正需要的
  • 用curl下载:http://blog.alivate.au/wp-content/uploads/2018/10/poppler-0.68.0_x86.7z,解压后,把bin目录添加到PATH环境变量里。

3. Python代码

  • 代码如下
from pdf2image import convert_from_path
import os
import cv2


""" 
@zhangkaifang 2020-11-02,这里为了统一格式,方便后续处理。
①、因为后续操作的png图像尺寸都是[3480*2433]的大小,这里直接将pdf转成该尺寸。
②、原PDF的大小是 [20.40*14.26 inch], 3480/20.40=170.588约数。意思是每个英寸扫描170个点。
"""

path_all_pdf = './PDF'                    # 存放pdf的文件目录
pdf_all = os.listdir(path_all_pdf)        # 所有的pdf文件列表

outfile = './PNG'
if not os.path.exists(outfile):           # 用来保存解析出来的PNG文件目录
    os.mkdir(outfile)

i = 1
for pdf_name in pdf_all:
    pdf_one = os.path.join(path_all_pdf, pdf_name)
    pages = convert_from_path(pdf_one, 175, thread_count=8)
    png_name = pdf_name.replace('.pdf', '.png')
    png_path = os.path.join(outfile, png_name)
    for page in pages:
        page.save(png_path, 'PNG')
    #==============================
    im1 = cv2.imread(png_path)
    im2 = cv2.resize(im1, (2433, 3480))   # 为图片重新指定尺寸
    cv2.imwrite(png_path, im2)
    print("自动转换第", i, "个pdf文件!", "=========", pdf_name, "图像尺寸:", im2.shape)
    i = i + 1

4. 参考文章

  • Python报错:PermissionError: [Errno 13] Permission denied解决方案详解
  • Python PDF转image方法小结
  • 利用pdf2image,将pdf文件转换成图片
  • debian使用pdf2image包 将pdf转化成图片 Poppler安装出问题

本文标签: 批量文件转换成笔记图片PNG