wkhtmltopdf 将html页面导成PDF
in PHPLINUXWEB with 0 comment

wkhtmltopdf 将html页面导成PDF

in PHPLINUXWEB with 0 comment

wkhtmltopdf将html页面导成PDF

说明

最近帮朋友做了一个PDF导出的功能,里边设计到了用wkhtmltopdf将html页面导成PDF的技术,也遇到了一些困难,我就把这个过程写下来,供大家参考一下。


需求及调研

需求

朋友给了一个图纸,要求按照图纸上的样式设计PDF,数据为动态数据。下面是我给他们做的页面以及用wkhtmltopdf生成出来的图纸PDF,几乎是1:1生成的,博主这里不做html+css的延伸,给大家讲一下这个开发过程。

 需求:http://php.zxliu.cn/h_pdf/print.html (右键查看源代码可以查看到源码)
 最终样式:http://note.youdao.com/noteshare?id=748684dad759f0e8525faad202b6a730
调研过程

调研了网上大部分实现pdf导出的插件及案例,由于我想直接把页面生成PDF,就筛选出两个比较适合我这个项目的插件,一个是wkhtmltopdf,另一个是网友基于chome的printPDF插件封装的page2pdf,后来在运行测试的时候page2pdf在我的服务器上一直报一个错,博主能力有限。。。一直没能解决,所以就选用了wkhtmltopdf。

安装wkhtmltopdf

安装下载
官网地址:https://wkhtmltopdf.org/  
1.下载deb包, ubuntu 14.04 64位下载
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox_0.12.5-1.trusty_amd64.deb
2.dpkg解压
dpkg -i libxrender1_0.9.9-0ubuntu1_amd64.deb
3.测试
wkhtmltopdf http://php.zxliu.cn/h_pdf/print.html test.pdf

说明:将deb包直接下载下来,解压出来就好。
使用

文档: http://note.youdao.com/noteshare?id=f2a629159cd3b70a48c0b1c16b128687
基本语法:wkhtmltopdf http://php.zxliu.cn/h_pdf/print.html test.pdf

说明:一开始测试的时候一直会出现尺寸不相符的问题,然后自己去官网上找了最新的文档,把我的自己的使用给大家看一下。

最终语法:wkhtmltopdf -T 0 -L 0 -R 0 -O Landscape http://php.zxliu.cn/h_pdf/print.html test.pdf

-T:top  距离顶侧的距离
-L:left 距离左侧的距离
-R:right 距离右侧的距离
-O:orientation  横向打印或者纵向打印 Landscape(横向) or Portrait(纵向) 默认是Portrait 

总结

这也算是一个小项目吧,用ThinkPHP+H.UI做的,后续会把源码丢到GitHub上,也会把这里边CSS的经验总结一下,希望大家可以学习一下。

结尾

腹有诗书气自华,最是书香能致远。

Responses