首頁  >  文章  >  後端開發  >  php如何實作doc轉pdf

php如何實作doc轉pdf

藏色散人
藏色散人原創
2020-09-02 10:01:494830瀏覽

php實作doc轉pdf的方法:首先引入autoload檔案;然後透過“$templateProcessor->saveAs('test.docx');”載入範本的word檔案;最後將“test.docx”轉換成“test.pdf”即可。

php如何實作doc轉pdf

推薦:《PHP影片教學

php 編輯PDF文件,php word 轉PDF,php 編輯word ,phpoffice,phpword,libreoffice

廢話不多說,直接說需求

1、專案經理:「小江啊,我這裡有份合同,是word格式的,你把它生成PDF格式,裡面的內容還能編輯」。

大致思路

1、遇到這種需求,我有點震驚了,什麼需求啊這是,以前從來沒碰到過。然後google啊百度啊一大推的東西。我也看了幾種常規產生pdf的php第三方類別庫。

有tcpdf,zend framework,fpdf等,tcpdf生成pdf呢,直接點呢就是文檔的內容還要用html,css寫,那要用這個還不吐血,zend framework 下面有個生成pdf的類庫,但是有個致命的缺點,不支援中文,中文會亂碼,fpdf也是一樣。我全都試了個遍,沒個毛用,感覺要被這個玩意搞死,當我快要放棄的時候,我看到了phpword,看到了希望,phpword支持編輯word文檔,但轉換成pdf不是他的拿手好菜,無奈最後下了個libreoffice轉換器,這才勉強完成了這個需求,哎,覺得非常不容易,一定要分享下,如果有更好的辦法,可在下方評論:

1.直接引入autoload文件

require_once ’ vendor/phpoffice/phpword/bootstrap.php’;

2、

       $templateProcessor = new      \PhpOffice\PhpWord\TemplateProcessor('layout.docx');
       $templateProcessor->setValue('name', 'AAAAAAA');
       $templateProcessor->setValue('ID_card', '36042819950812782112');
       $templateProcessor->setValue('mobile', '12312341234');
       $templateProcessor->setValue('adress', '广东省深圳市宝安区西乡');
       $templateProcessor->saveAs('test.docx');

以上程式碼說明: 載入我們範本的word文件,我們在裡面設定變數格式是${name} 等等這種格式,產生的test.docx就是把setValue的值賦給了變數,是不是很神奇。

3、最後將test.docx 轉換成test.pdf,這一步也走的很心酸,查了很多資料,總以為有個第三方的庫可以解決,但還是沒找到,libreoffice是一個開源的軟體,這是個大傢伙,將近1G的大小。以下將用法介紹下:

system(“export HOME=/tmp/ && libreoffice --invisible --convert-to pdf --outdir /phpstudy/www/Uploads/activity/2017-02-28/ /phpstudy/www/Uploads/activity/2017-02-28/58b53f9cad22e.xls 2>&1”);

直接用system 系統函數

本文就介紹到這裡吧,有疑問的小夥伴歡迎下方評論。

以上是php如何實作doc轉pdf的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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