美文网首页
ubuntu下laravel集成snappy pdf 插件

ubuntu下laravel集成snappy pdf 插件

作者: Freeasthew_a098 | 来源:发表于2017-08-15 13:30 被阅读0次

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

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

    相关文章

      网友评论

          本文标题:ubuntu下laravel集成snappy pdf 插件

          本文链接:https://www.haomeiwen.com/subject/cawmrxtx.html