文档转jpg 一般两步 先转成pdf 再由pdf转jpg
*-*本过程基于 ubuntu系统 python3.6 *-*
- 文档转pdf
文档转pdf,这里用到 libreoffice,通过命令去调libreoffice 执行转换。网上很多用到 openoffice,注意到 libreoffice是从openoffice 分出来的, 另外 openoffice 在13年就不更新了, 所以没有选openoffice。 另外网上有很多包装了libreoffice的包可以试试。
安装libreoffice
apt-get install -y libreoffice
安装好后 直接控制台输入命令就可以转换 了
libreoffice --headless --convert-to pdf --outdir . test.xlsx
--outdir 后面 . 指输出到当前文件夹下, test.xlsx是指要转换的文档(也在当前文件夹下),转换成功后会在当前文件夹下生产test.pdf文件。
用python代码的话, 通过
subprocess.run([])
运行命令即可。
2. pdf 转jpg
这里用到 wand python 包。注意 除了wand 包要下载外 还需要安装另外两个软件,否则会报错。
apt-get install libmagickwand-dev
apt-get install ghostscript
pip install wand
wand功能比较强大, 这里只专注我们要做的事(转jpg),用python代码实现很简单
from wand.image import Image
img = Image(filename='/app/test.pdf')
c = img.convert('jpg')
c.save(filename='/app/test.jpg')
这样就转成jpg文件了。
两个转换过程有很多细节需要优化和处理,这里只是展示了主要的过程和实现
附:docker file (方便一步搭环境)
FROM python:3.6
RUN apt-get update
&& apt-get install -y python3-pip
&& apt-get install -y build-essential libssl-dev libffi-dev python-dev
&& apt-get install -y libreoffice
&& apt-get install libmagickwand-dev
&& DEBIAN_FRONTEND=noninteractive apt-get install ghostscript
RUN pip install wand