溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php實(shí)現(xiàn)doc轉(zhuǎn)pdf的方法

發(fā)布時(shí)間:2020-09-04 10:14:29 來(lái)源:億速云 閱讀:471 作者:小新 欄目:編程語(yǔ)言

php實(shí)現(xiàn)doc轉(zhuǎn)pdf的方法?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見(jiàn)到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!

php實(shí)現(xiàn)doc轉(zhuǎn)pdf的方法:首先引入autoload文件;然后通過(guò)“$templateProcessor->saveAs('test.docx');”加載模板的word文件;最后將“test.docx”轉(zhuǎn)換成“test.pdf”即可。

php實(shí)現(xiàn)doc轉(zhuǎn)pdf的方法

php 編輯PDF文件,php word 轉(zhuǎn) PDF,php 編輯 word,phpoffice,phpword,libreoffice

廢話不多說(shuō),直接說(shuō)需求

1、項(xiàng)目經(jīng)理:“小江啊,我這里有份合同,是word格式的,你把它生成PDF格式,并且里面的內(nèi)容還能編輯”。

大致思路

1、遇到這種需求,我有點(diǎn)震驚了,什么需求啊這是,以前從沒(méi)碰到過(guò)。然后google啊百度啊一大推的東西。我也看了幾種常規(guī)生成pdf的php第三方類庫(kù)。

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

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', '廣東省深圳市寶安區(qū)西鄉(xiāng)');
       $templateProcessor->saveAs('test.docx');

以上代碼說(shuō)明: 加載我們模板的word文件,我們?cè)谄淅锩嬖O(shè)置變量格式是${name} 等等這種格式,生成的test.docx就是把setValue的值賦給了變量,是不是很神奇。

3、最后將test.docx 轉(zhuǎn)換成test.pdf,這一步也走的很心酸,查了很多資料,總以為有個(gè)第三方的庫(kù)可以解決,但還是沒(méi)找到,libreoffice是一個(gè)開(kāi)源的軟件,這是個(gè)大家伙,將近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 系統(tǒng)函數(shù)

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)php實(shí)現(xiàn)doc轉(zhuǎn)pdf的方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI