最近有个需求就是把页面生成pdf文件,找了很多方法也尝试了很多插件和第三方jar包,最后选择wfhtmltopdf,这个是我目前遇到最好用转化过程兼容性也最好的一个工具。下面切入正题介绍一下怎么使用,至于怎么组装html代码各位自己想办法,网上也有很多例子,本博文只介绍怎么使用wkhtmltopdf以及在使用过程中踩过的坑。


1:下载wkhtmltopdf然后安装,下载地址:http://wkhtmltopdf.org/downloads.html ,找到适合自己服务器的版本安装,安装过程中要注意以下安装路径,安装路径最好不要有空格,避免不必要的麻烦。如果不想到官网下载也可以下载我的资源。

2:安装完毕需要配置系统Path环境变量,做为Java语言的使用者这个是必修课,我就不介绍怎么配置,配置路径一般为        C:\wkhtmltopdf\bin记得在配置环境变量值时前面加;号。我的环境变量值为D:\dev\wkhtmltopdf\bin  配置完毕可以运行cmd进入dos窗口输入wkhtmltopdf命令,如果出现wkhtmltopdf命令的使用帮助那么表示安装好了。如果没有安装好会出现错误提示,本人就踩过坑,提示少两个dll组件,这时你需要重新安装一下Visual C++,安装Visual C++版本是要和wkhtmltopdf及Windows操作系统相适应的,我在WinServer2008R2安装的Visual C++ 2015,提示缺少的两个dll组件都解决了,dos下运行wkhtmltopdf命令正常,因为我安装wkhtmltopdf的版本wkhtmltox-0.12.6-1.msvc2015-win32.exe,这个版本需要msvc2015支持。

3:以上准备工作都做完了,接下来就是怎么在Java程序后台调用wkhtmltopdf命令了,好在Java调用windows的exe文件有相应的类库,代码如下:
        String[] cmd = {"C:\\wkhtmltopdf\\bin\\wkhtmltopdf.exe","www.baidu.com","E:/test.pdf"};
        Process pro = Runtime.getRuntime().exec(cmd);
此时就会在E盘下生成一个test.pdf文件使用wkhtmltopdf在后台把html代码转换为pdf文件

如果在dos窗口测试调用带有参数的url,那么url需要加“”号,如
wkhtmltopdf  "www.baidu.com?p1=val1&p2=val2"  e:/test.pdf

4:调用的参数url仅返回一个html页面,至于需要什么样的pdf文件,那么根据需求自己组装一个url,这个url呈现的什么页面,就是要生成的pdf文件,所以重点业务在于怎么实现这个url服务编码逻辑。

相关文章: