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;}

content

本人小菜一个,有什么不对的地方,敬请指正。

你可能感兴趣的:(ubuntu下laravel集成snappy pdf 插件)