解決方案分紅兩步:php
(1)調用unoconv命令將 doc、ppt 轉 pdfshell
(2)使用 imagemagick將 pdf 轉圖片windows
步驟dom
1.安裝unoconv測試
sudo apt-get install unoconv
安裝是否成功字體
unoconv --version
2.安裝imagemagickspa
sudo apt-get install imagemagick
是否安裝成功code
convert -version
3.測試xml
(1)將odt文件轉成pdf文件blog
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 下字體所有拷貝到其中