依据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安装出问题
更多推荐
『Python笔记』依据pdf2image批量将pdf文件转换成png图片!
发布评论