博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Python】pdf2image模块+poppler将PDF转换为图片
阅读量:4101 次
发布时间:2019-05-25

本文共 1329 字,大约阅读时间需要 4 分钟。

有时我们需要将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/

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

下面是具体代码:

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

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

转载地址:http://flgii.baihongyu.com/

你可能感兴趣的文章
【Python】学习笔记——-5.1、高阶函数
查看>>
【Python】学习笔记——-5.1.1、高阶函数之map/reduce
查看>>
【Python】学习笔记——-5.1.2、高阶函数之filter
查看>>
【Python】学习笔记——-5.1.3、高阶函数之sorted
查看>>
【Python】学习笔记——-5.2、返回函数
查看>>
【Python】学习笔记——-5.3、匿名函数
查看>>
【Python】学习笔记——-5.4、装饰器
查看>>
【Python】学习笔记——-5.5、偏函数
查看>>
解决Excel中上下左右键相反,且不能一格一格的滑动。
查看>>
【Python】学习笔记——-6.0、模块
查看>>
【Python】学习笔记——-6.1、使用模块
查看>>
【Python】学习笔记——-6.2、使用第三方模块
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.1、类和实例
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.4、获取对象信息
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
【Python】学习笔记——-8.1、面向对象高级编程:1.使用__slots__
查看>>
【Python】学习笔记——-8.2、面向对象高级编程:2.使用@property
查看>>