首頁  >  文章  >  後端開發  >  php如何把word轉出圖片

php如何把word轉出圖片

藏色散人
藏色散人原創
2020-10-19 11:01:295970瀏覽

php把word轉圖片的方法:首先給伺服器安裝libreoffice;然後使用exec函數來呼叫命令列操作;最後透過「xec("soffice --headless --invisible..."」方法把word轉圖片即可。

php如何把word轉出圖片

#推薦:《PHP影片教學

linux,centos,php,word轉圖片方法(無格式錯亂,亂碼等問題)

剛開始的時候是客戶的活兒,真的是沒有想到,被這樣一個方法給卡住了,真是醉了,經過漫長的一周,終於搞定了這個問題,以下就來給大家介紹以下這個方法把。能方便大家。

【註】本方法也可以將ppt 轉為圖片(execl 沒試過,有時間你們可以試試看)

(直接轉換沒辦法,所以找了個摺中的辦法,先轉成pdf文件,然後再將pdf轉圖片)

先說一下環境的安裝(我也是經歷了好幾次失敗才總結出環境的安裝的,*表示必須的操作,如果是大神,那麼請繞道)

伺服器環境:centos7

*整合環境:寶塔

安裝完寶塔後,選擇安裝LNMP的整合環境(php的版本最好安裝5.6以上)

這裡需要注意的就是必須使用nginx 的環境(別用apache,坑太多),還有就是使用寶塔的整合環境,別問我為什麼,因為坑太多,只要時間充足,工作不限時長,你也可以自己嘗試的安裝各種環境試試(為了快速,就按照我的環境安裝步驟走)

等待。。。

環境安裝完成之後,我們進入寶塔的軟體商店,點擊php後面的設置,然後給php安裝imagemagick擴充

 等待這個php擴充的安裝完成

安裝完成之後,我們開始為伺服器安裝libreoffice

直接執行下面的程式碼就可以(第一個安裝好就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 轉圖片的話只要把後面的docx 文件換成pptx 文件即可)

如果在執行命令的目錄下,生成了一個與word同名的pdf文件,即說明libreioffice安裝成功了

對於libreoffice的linux使用可以自行百度

在php中,我們可以使用exec() 函數來呼叫命令列操作,還有shell_exec() 等函數(函數用法自行百度)

如果在php方法中無法執行exec() 方法,表示php將這些方法停用了,這個時候我們可以修改php.ini 檔案中的設定

在php.ini 檔案中找到disable_functions = 開頭的一行,然後在後面把自己要使用的函數刪掉,然後重新啟動一下php,然後我們寫的php就可以呼叫exec() 等函數了

#至此,我們就把word轉圖片的所要用到的所有環境都安裝成功了

php中word轉pdf的方法:

$result = exec("soffice --headless --invisible --convert-to pdf 1.docx");
echo json_encode($result);

可以在同目錄生成word同名pdf文件

php中pdf轉圖片的方法:

$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); //设置分辨率 值越大分辨率越高
        $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幾頁就有幾張圖片產生)

關於pdf轉圖片的方法大家可以參考:

https://blog.csdn.net/jeff_love_marina/article/details/80838055(環境等上面的步驟已經都安裝好了,所以直接看該連結的方法就行)

至此,在linux 下php 將word 轉圖片的方法就整個說完了,加油吧

以上是php如何把word轉出圖片的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn