php實作doc轉pdf的方法:首先引入autoload檔案;然後透過“$templateProcessor->saveAs('test.docx');”載入範本的word檔案;最後將“test.docx”轉換成“test.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中文網其他相關文章!