ubuntu下laravel集成snappy pdf 插件

首先,第一個坑,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

這是在網上找的辦法。安裝沒錯,該有插件也基本上全了,如果安裝不成功,看一下下提示,apt-get update 試一下,然而運行還是會抱一個cannot connect的錯誤,詳細如下:

QXcbConnection: Could not connect to display

Aborted

繼續谷歌,最終再次安裝xvfb ?解決問題 執行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()- 執行一個命令,并且打開用來輸入/輸出的文件指針。

proc_get_status—獲取由proc_open()函數打開的進程的信息

至于這兩個方法會不會引起安全問題,暫時未考慮,讀者可自行判斷。

至此,pdf文件可以下載。

最后,第三個坑,現在的pdf文件默認是margin是10mm,這樣樣式看起來就不太好,文檔寫的setOption(‘margin-top’,50),windows下時起作用的,然而ubuntu下并沒有什么卵用,谷歌到要設置什么header-spacing footer-spacing 所謂的頁眉頁腳,然而沒看到什么作用,最后實在不想繼續下去了,直接在分頁的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>

本人小菜一個,有什么不對的地方,敬請指正。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容