解决方案分成两步:
(1)调用unoconv命令将 doc、ppt 转 pdf
(2)使用 imagemagick将 pdf 转图片
步骤
1.安装unoconv
sudo apt-get install unoconv
安装是否成功
unoconv --version
2.安装imagemagick
sudo apt-get install imagemagick
是否安装成功
convert -version
3.测试
(1)将odt文件转成pdf文件
unoconv -f pdf test.docx
(2)将pdf转成图片(jpg)
convert XXX.pdf %d.jpg
%d是按页进行转换
4.php调用shell命令进行转换
<?php exec("unoconv -f pdf test.docx"); exec("convert test.pdf %d.jpg");
补充
1.如果出现错误:
convert: not authorized `test.pdf’ @ error/constitute.c/ReadImage/412.
convert: no images defined `%d.jpg’ @ error/convert.c/ConvertImageCommand/3210.
解决方案:
修改配置文件/etc/ImageMagick-6/policy.xml
将
<policy domain="coder" rights="none" pattern="PDF" />
改为
<policy domain="coder" rights="read|write" pattern="PDF" />
添加
<policy domain="coder" rights="read|write" pattern="LABEL" />
2.如果转成的图片模糊
转换是增加参数
convert -density 300 -quality 100 test.pdf %d.jpg
-density XXX
图像每英寸面积内的像素点数,数值越高图片质量越高
-quality 100
转换jpg时的压缩率,100表示不压缩
php代码改为
<?php exec("unoconv -f pdf test.docx"); exec("convert -density 300 -quality 100 test.pdf %d.jpg");
3.乱码问题
如果转换的文件出现乱码
在/usr/share/fonts/下新建文件夹 win 并设置权限,将 windows 下的 window-fonts 下字体全部拷贝到其中
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/20366.html