php把word轉(zhuǎn)圖片的方法:首先給服務(wù)器安裝libreoffice;然后使用exec函數(shù)來(lái)調(diào)用命令行操作;最后通過(guò)“xec("soffice –headless –invisible…"”方法把word轉(zhuǎn)圖片即可。
推薦:《PHP視頻教程》
linux,centos,php,word轉(zhuǎn)圖片方法(無(wú)格式錯(cuò)亂,亂碼等問題)
剛開始的時(shí)候是客戶的活兒,真的是沒有想到,被這樣一個(gè)方法給卡住了,真是醉了,經(jīng)過(guò)漫長(zhǎng)的一周,終于搞定了這個(gè)問題,以下就來(lái)給大家介紹以下這個(gè)方法把。能方便大家。
【注】本方法也可以將 ppt 轉(zhuǎn)為圖片(execl 沒試過(guò),有時(shí)間你們可以試一下)
(直接轉(zhuǎn)換沒辦法,所以找了個(gè)折中的辦法,先轉(zhuǎn)成pdf文件,然后再將pdf轉(zhuǎn)圖片)
先說(shuō)一下環(huán)境的安裝(我也是經(jīng)歷了好幾次失敗才總結(jié)出環(huán)境的安裝的,*表示必須的操作,如果是大神,那么請(qǐng)繞道)
服務(wù)器環(huán)境:centos7
*集成環(huán)境:寶塔
安裝完寶塔后,選擇安裝LNMP的集成環(huán)境(php的版本最好安裝5.6及以上)
這里需要注意的就是必須使用 nginx 的環(huán)境(別用apache,坑太多),還有就是使用寶塔的集成環(huán)境,別問我為什么,因?yàn)榭犹?,只要時(shí)間充足,工作不限時(shí)長(zhǎng),你也可以自己嘗試的安裝各種環(huán)境試試(為了快速,就按照我的環(huán)境安裝步驟走)
等待。。。
環(huán)境安裝完成之后,我們進(jìn)入寶塔的軟件商店,點(diǎn)擊php后面的設(shè)置,然后給php安裝imagemagick擴(kuò)展
等待這個(gè)php擴(kuò)展的安裝完成
安裝完成之后,我們開始給服務(wù)器安裝libreoffice
直接執(zhí)行下面的代碼就可以(第一個(gè)安裝好就ok了,后面兩個(gè)安裝的時(shí)候可能會(huì)報(bào)錯(cuò),但是只要第一個(gè)安裝好了,其實(shí)沒什么大的影響)
1 yum install libreoffice 2 yum install libreoffice-headless 3 yum -y install libreoffice-langpack-zh-Han*
安裝完成libreoffice后,我們使用下面的代碼來(lái)測(cè)試一下是否安裝成功:
soffice --headless --invisible --convert-to pdf 1.docx
(如果是 ppt 轉(zhuǎn)圖片的話只要把后面的 docx 文件 換成 pptx 文件即可)
如果在執(zhí)行命令的目錄下,生成了一個(gè)與word同名的pdf文件,即說(shuō)明libreioffice安裝成功了
對(duì)于libreoffice的linux使用可以自行百度
在php中,我們可以使用 exec() 函數(shù)來(lái)調(diào)用命令行操作,還有 shell_exec() 等函數(shù)(函數(shù)用法自行百度)
如果在php方法中不能執(zhí)行 exec() 方法,說(shuō)明php將這些方法禁用了,這個(gè)時(shí)候我們可以修改 php.ini 文件中的配置
在php.ini 文件中找到 disable_functions = 開頭的一行,然后在后面把自己要使用的函數(shù)刪掉,然后重新啟動(dòng)一下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幾頁(yè)就有幾張圖片生成)
關(guān)于pdf轉(zhuǎn)圖片的方法大家可以參考:
https://blog.csdn.net/jeff_love_marina/article/details/80838055(環(huán)境等上面的步驟已經(jīng)都安裝好了,所以直接看該鏈接的方法就行)
至此,在 linux 下 php 將 word 轉(zhuǎn)圖片的方法就整個(gè)說(shuō)完了,加油吧