首先萌腿,第一個坑,wkhtmltopdf的安裝恨胚,詳細如下:
下載最新的包 http://wkhtmltopdf.org/downloads.html --- Linux (Ubuntu Trusty)32-bit /64-bitbuilt on Ubuntu 14.04.1
wget?http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
安裝依賴的組件:
apt-get install libxfont1 xfonts-encodings xfonts-utils xfonts-base xfonts-75dpi
安裝wkhtmltopdf:
dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
測試一下:
wkhtmltopdf http://www.people.com.cn/ 1.pdf
這是在網(wǎng)上找的辦法铐拐。安裝沒錯,該有插件也基本上全了兑牡,如果安裝不成功央碟,看一下下提示,apt-get update 試一下均函,然而運行還是會抱一個cannot connect的錯誤硬耍,詳細如下:
QXcbConnection: Could not connect to display
Aborted
繼續(xù)谷歌,最終再次安裝xvfb ?解決問題 執(zhí)行xvfb-run wkhtmltopdf .... ?
具體參考:https://github.com/wkhtmltopdf/wkhtmltopdf/issues/2037#issuecomment-62019521
至此wkhtmltopdf 告一段落边酒。
其次经柴,composer require snappy? ,不多說了墩朦。坯认。。詳細使用參考github:https://github.com/barryvdh/laravel-snappy
然而呢氓涣,下一個坑牛哺,windows按照提示直接下載pdf是沒有問題的,linux下提示兩個方法受限制劳吠,proc_get_status,proc_open引润,這兩個方法在php.ini的disable_functions 刪除掉就可以使用的,
proc_open()- 執(zhí)行一個命令痒玩,并且打開用來輸入/輸出的文件指針淳附。
proc_get_status—獲取由proc_open()函數(shù)打開的進程的信息
至于這兩個方法會不會引起安全問題,暫時未考慮蠢古,讀者可自行判斷奴曙。
至此,pdf文件可以下載草讶。
最后洽糟,第三個坑,現(xiàn)在的pdf文件默認是margin是10mm,這樣樣式看起來就不太好坤溃,文檔寫的setOption(‘margin-top’拍霜,50),windows下時起作用的薪介,然而ubuntu下并沒有什么卵用沉御,谷歌到要設(shè)置什么header-spacing footer-spacing 所謂的頁眉頁腳,然而沒看到什么作用昭灵,最后實在不想繼續(xù)下去了吠裆,直接在分頁的div下加了個空白div 撐起頂部一段空間,暫時告一段落烂完。
再加個tip:wkhtmltopdf 有個很好的方法试疙,就是在那個div的樣式后添加一個:page-break-inside:avoid;就ok了。樣例:
.page-index1{width: 210mm;height: 297mm;margin: 0 auto;background: white;text-align: center;page-break-inside:avoid;}
<div class="page-index1">content</div>
本人小菜一個抠蚣,有什么不對的地方祝旷,敬請指正。