环境安装
PDF转IMG需要两个Python模块:PyPDF2(1.26.0)
和Wand(0.4.4)
,其中Wand
安装前需要先安装软件ImageMagick
,由于7.xx版本的接口改变,必须安装6.xx版本,以及GhostScript
。PyPDF2
和Wand
可以直接使用pip
安装,主要两个软件以及环境配置需要根据系统环境不同进行不同操作。
由于自己开发用的Mac,生产环境覆盖了Linux和Windows,需要在这3种系统上进行环境安装,也是折腾了不少,以下简要列一下安装过程。
Mac环境
安装ImageMagick
:
brew install imagemagick@6
安装完后可以用命令convert --version
来测试
软链接:
$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-49/lib/libMagickWand-6.Q16.dylib /usr/local/lib/libMagickWand.dylib
添加至系统环境:
echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.bash_profile
. ~/.bash_profile
安装GhostScript
:
brew install gs
Linux环境
安装ImageMagick
和GhostScript
:
yum install ImageMagick
选择安装6.xx版本,由于依赖关系,会自动安装GhostScript
Windows环境
- 下载ImageMagick
- 相关安装及配置
- 下载安装GhostScript
windows环境下配合Wand0.4.4使用的时候,加载Wand后,python读取的环境变量Path变成了unicode类型,导致启动webdirver时会报“TypeError: environment can only contain strings”,可以在引入Wand后,将path修改回str类型
import os
import wand
os.environ['path'] = str(os.environ['path'])
代码实现
考虑PDF会有多页的情况,每一页PDF会生成单独的一张图片,如有需求,可以用PIL
将多张图片进行合并。
import io
from wand.image import Image
from wand.color import Color
from PyPDF2 import PdfFileReader, PdfFileWriter
from PIL import Image as PIL_Image
def pdf_to_img(pdf_path, resolution=200, img_suffix