這篇文章主要介紹了php把word轉(zhuǎn)圖片的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
目前創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站改版維護、企業(yè)網(wǎng)站設(shè)計、金塔網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
linux,centos,php,word轉(zhuǎn)圖片方法(無格式錯亂,亂碼等問題)
剛開始的時候是客戶的活兒,真的是沒有想到,被這樣一個方法給卡住了,真是醉了,經(jīng)過漫長的一周,終于搞定了這個問題,以下就來給大家介紹以下這個方法把。能方便大家。
【注】本方法也可以將 ppt 轉(zhuǎn)為圖片(execl 沒試過,有時間你們可以試一下)
(直接轉(zhuǎn)換沒辦法,所以找了個折中的辦法,先轉(zhuǎn)成pdf文件,然后再將pdf轉(zhuǎn)圖片)
先說一下環(huán)境的安裝(我也是經(jīng)歷了好幾次失敗才總結(jié)出環(huán)境的安裝的,*表示必須的操作,如果是大神,那么請繞道)
服務(wù)器環(huán)境:centos7
*集成環(huán)境:寶塔
安裝完寶塔后,選擇安裝LNMP的集成環(huán)境(php的版本最好安裝5.6及以上)
這里需要注意的就是必須使用 nginx 的環(huán)境(別用apache,坑太多),還有就是使用寶塔的集成環(huán)境,別問我為什么,因為坑太多,只要時間充足,工作不限時長,你也可以自己嘗試的安裝各種環(huán)境試試(為了快速,就按照我的環(huán)境安裝步驟走)
等待。。。
環(huán)境安裝完成之后,我們進入寶塔的軟件商店,點擊php后面的設(shè)置,然后給php安裝imagemagick擴展
等待這個php擴展的安裝完成
安裝完成之后,我們開始給服務(wù)器安裝libreoffice
直接執(zhí)行下面的代碼就可以(第一個安裝好就ok了,后面兩個安裝的時候可能會報錯,但是只要第一個安裝好了,其實沒什么大的影響)
1 yum install libreoffice 2 yum install libreoffice-headless 3 yum -y install libreoffice-langpack-zh-Han*
安裝完成libreoffice后,我們使用下面的代碼來測試一下是否安裝成功:
soffice --headless --invisible --convert-to pdf 1.docx
(如果是 ppt 轉(zhuǎn)圖片的話只要把后面的 docx 文件 換成 pptx 文件即可)
如果在執(zhí)行命令的目錄下,生成了一個與word同名的pdf文件,即說明libreioffice安裝成功了
對于libreoffice的linux使用可以自行百度
在php中,我們可以使用 exec() 函數(shù)來調(diào)用命令行操作,還有 shell_exec() 等函數(shù)(函數(shù)用法自行百度)
如果在php方法中不能執(zhí)行 exec() 方法,說明php將這些方法禁用了,這個時候我們可以修改 php.ini 文件中的配置
在php.ini 文件中找到 disable_functions = 開頭的一行,然后在后面把自己要使用的函數(shù)刪掉,然后重新啟動一下php,然后我們寫的php就可以調(diào)用 exec() 等函數(shù)了
至此,我們就把word轉(zhuǎn)圖片的所要用到的所有環(huán)境都安裝成功了
php中word轉(zhuǎn)pdf的方法:
$result = exec("soffice --headless --invisible --convert-to pdf 1.docx"); echo json_encode($result);
可以在同目錄生成word同名pdf文件
php中pdf轉(zhuǎn)圖片的方法:
$result = pdf2png("/www/wwwroot/wwj.wangwenjie.club/1.pdf","/www/wwwroot/wwj.wangwenjie.club/"); function pdf2png($pdf, $path) { if (!extension_loaded('imagick')) { return false; } if (!file_exists($pdf)) { return false; } $im = new \Imagick(); $im->setResolution(120, 120); //設(shè)置分辨率 值越大分辨率越高 $im->setCompressionQuality(100); $im->readImage($pdf); foreach ($im as $k => $v) { $v->setImageFormat('png'); $fileName = $path . md5($k . time()) . '.png'; if ($v->writeImage($fileName) == true) { $return[] = $fileName; } } return $return; }
可以在同目錄下生成png圖片(pdf幾頁就有幾張圖片生成)
感謝你能夠認真閱讀完這篇文章,希望小編分享php把word轉(zhuǎn)圖片的方法內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學(xué)習(xí)!