做项目碰到这么个需求,前后找了不少相关的解决方案,终于完成,分享给大家,如有错误疏漏还望多多指正讨论
该文档部分参数参考来源于 https://www.codenong.com/6605006/
1.首先在linux环境下安装 unoconv (用于文件格式的转换)
执行命令: yum install -y unoconv
2.第一步安装成功后再安装ImageMagick (用来处理图片)
执行命令(注意大小写): yum install -y ImageMagick
3.先进行ppt的文件格式转换
执行命令: unoconv -f pdf xxx.pptx
pdf是要输出文件的名称和格式,这一步操作会在当前文件夹下生成一个同名的pdf文件,用于后续的图片处理
4.处理pdf文件将其转为图片文件列表
执行命令: convert xxx.pdf %d.jpg
xxx.pdf要转换的文件,%d页码变量,将pdf按页转成图片文件,有多少页就会有多少个对应页码数的图片文件,不带参数的情况下,这一步转出的图片清晰度不够,需要附加一些参数来提高清晰度,详细可参考文档开头的网址;
这里简单描述较常用的2个参数:
-density 参数有点特殊,因为必须位于输入文件之前。由于PDF是基于矢量的文件格式,没有像素的概念,因此它表示"页面为8英寸乘12英寸"。如果需要像素,可以使用density设置告诉它要在输出中获得的每英寸像素数。例如使用150,您将在结果图像中得到8x150 = 1200 x 12x150 = 1800像素。那也就是进行锐化,对比度,压缩等设置的像素数量
-density 300设置pdf渲染的dpi
-quality 图片质量
-quality 100将JPEG压缩质量设置为最高质量
综合执行命令: convert -density 300 -quality 100 xx