一、背景
部分情况下,需要将 PDF 页面转换为图片,例如 PNG 或 JPEG 格式。
python 的开源库 pdfplumber,提供了将 pdf 文件转换为图片的方法。
如果之前还没有安装和使用过pdfplumber库,pdfplumber的安装及基础使用,可参考往期文章:
pdfplumber安装、导入及基础使用方法
二、pdfplumber 将 pdf 文件转换为图片详解
pdfplumber 提供的方法:
.to_image(resolution=150),结果返回PageImage类的实例。
参数:resolution={integer},设置分辨率,可省略,默认分辨率:72。
使用方法如下,将下面代码段中路径改为需要转换的pdf文件路径即可。
import pdfplumber
# 需要转换为图片的pdf文件路径
file_path = r'E:\pytest\pdfp\test\test.pdf'
with pdfplumber.open(file_path) as pdf:
# pdf.pages默认为pdf全部页
# 可通过切片的方式选择需要转换的1页或几页,如前2页:pdf.pages[:2]
for i, page in enumerate(pdf.pages[:2]):
im = page.to_image(resolution=150)
# 保存
im.save(r'E:\pytest\pdfp\test\page-{}.png'.format(i + 1))
print('----分割线,第%d页----' % (int(i) + 1))
上述代码,将 test.pdf 的前2页转换为图片,运行结果如下:
PageImage类的一些基础方法
方法 | 释义 |
---|---|
im.reset() | 重置,清除已绘制的所有内容。 |
im.copy() | 将图像复制到新的“PageImage”实例。 |
im.save() | 语法:im.save(path_or_fileobject, format=“”);path_or_fileobject参数:传入保存图片的文件路径及文件名,不可省略,且一定要是路径+文件名+.png或.jpeg结尾。format参数:图片格式,可省略。 |
三、常见问题及解决方案
直接运行上述代码,使用 pdfplumber 中 to_image() 方法,将 PDF 文件转换为图片时,可能会出现报错,主要报错情况有以下2种。
(一)本地没有安装ImageMagick
重点报错提示:You probably had not installed ImageMagick library。
即报错原因:本地没有安装 ImageMagick。ImageMagick 是一个免费的创建、编辑、合成图片的软件。
解决办法:直接点击报错提示中的链接,下载 ImageMagick 安装包,安装即可。
本文下载的版本/安装包文件是:ImageMagick-7.1.1-15-Q16-HDRI-x64-dll.exe
ImageMagick简易安装教程
双击下载的 ImageMagick 安装文件,根据提示点击【next】,直接安装即可。
也可根据需要,在安装过程中,修改默认安装路径和配置项,如果觉得麻烦,可根据提示一直【next】安装,默认的安装已经足够使用(已经包括创建桌面快捷方式、配置系统环境变量—这一点非常重要)。
部分重点安装过程,如下图:
ImageMagick 安装完成后,该报错问题解决。
(二)找不到gswin64c.exe问题
重点报错提示:FailedToExecuteCommand “gswin64c.exe”。
报错原因:安装 ImageMagick 时,没有附带安装 gswin64c.exe。
解决办法:找到一个 gs.exe 文件去替代。
详细步骤如下:
第一步:下载相关文件。
下载链接,可参考:
https://mirrors.tuna.tsinghua.edu.cn/gnu/octave/windows/
本文下载版本的是:
octave-8.2.0-w64.zip。(推荐直接在上面镜像链接网页去下载,速度更快,文件较大,网盘等资源下载会十分慢。)
对应本文已安装的 ImageMagick 版本,如下图:
第二步:解压 octave-8.2.0-w64.zip 文件,
并将 \octave-8.2.0-w64\mingw64\bin 路径下,
名为【gs.exe】文件改名为【gswin64c.exe】。
第三步:配置环境变量。
打开电脑【设置】-【系统】-【关于】-最右边【高级系统设置】-【环境变量】-找到系统变量中的【Path】变量-点击【编辑】-然后【新建】,将 \octave-8.2.0-w64\mingw64\bin 的完整路径(如本文:E:\soft\ImageMagick\octave-8.2.0-w64\mingw64\bin)添加进去,最后点击确认即可。
完成以上三步,该报错问题即可解决。如果还是报相同错误,重启一下python环境(如:关掉PyCharm,重新打开 )。
四、总结
pdfplumber 将 pdf 转换为图片的使用方法很简单,代码也不复杂。
可能较为麻烦的就是,对本地环境有一定的要求,需要安装和配置。
-end-