【Python】pdf2image模块+poppler将PDF转换为图片

时间:2024-04-03 07:15:47

有时我们需要将PDF转换成图片,今天我们主要说的是pdf2image+poppler对PDF转换成图片格式。
pdf2image是个包装器,真正的转换工具是poppler
GitHub地址:https://github.com/Belval/pdf2image ,上面也有相关的配置说明。

1、安装pdf2image: pip install pdf2image
2、Windows安装配置poppler(这里只介绍Windows,Mac和Linux去上面Github地址里面参考官网)
Windows用户必须为Windows安装poppler,然后将bin/文件夹添加到PATH(开始>输入env>编辑系统环境变量>环境变量...>系统变量>Path)
Windows的poppler下载地址:http://blog.alivate.com.au/poppler-windows/

【Python】pdf2image模块+poppler将PDF转换为图片

注意这里配置之后需要重启一下电脑才会生效,不然会报如下错误:

【Python】pdf2image模块+poppler将PDF转换为图片

下面是具体代码:

convert_from_path()和convert_from_bytes()两个方法,具体参数介绍:

【Python】pdf2image模块+poppler将PDF转换为图片
pdf_path --> 要转换的PDF文档路径
dpi -->DPI中的图像质量(默认为200),Windows默认为96dpi
output_folder --> 将生成的图像写入文件夹(而不是直接写入内存)若是path不做指定的话,path的默认地址是:C:\Users\pppp\AppData\Local\Temp\生成的uuid4。
first_page --> 从哪一页开始转换,默认是PDF的第一页
last_page -->转换到哪一页,默认是PDF的最后一页
fmt --> 输出图像格式默认格式是ppm,还可以设置为png和jpeg等
thread_count --> 允许生成多少个线程进行处理,一般不超过4个线程;
userpw --> PDF的密码(若有密码的话需要添加)
use_cropbox -->使用cropbox而不是mediabox
strict --> 参数允许您使用自定义类型PDFSyntaxError捕获pdftoppm语法错误
transparent --> 参数允许生成没有背景的图像,而不是通常的白色图像(为此需要pdftocairo)
single_file --> 使用pdftoppm / pdftocairo中的-singlefile选项
output_file --> 输出文件名是什么
poppler_path --> 查找poppler二进制文件的路径,允许用户使用poppler_path指定poppler的安装路径;默认不指定的话需要将bin添加到系统PATH

统计了3种方法的耗时(转换82页的PDF):

pdf1_to_image() 耗时 6~8秒   pdf2_to_image() 耗时 5~8秒  pdf3_to_image() 耗时 10~15秒 pdf4_to_image() 耗时 11~15秒

所以优先选择pdf1_to_image()

另外还有一个模块也可以将pdf转换为图片格式PyMuPDF