在工作当中,遇到了需要把HTML页面转化为PDF文档,有很多中实现,如下进行一个对比,大家个借鉴去进行使用
于Windows平台进行测试:
此博客仅基于IText和基于WKHtmlToPdf来介绍并使用,均为博主亲测
其他两个可自行研究哈
iText 是业界使用最为广泛的创建 PDF 的,从 iText 5 升级到 iText 7 后,功能模块的划分更加清晰,两者在使用上,有较为明显的区别。
此处就不进行区别的赘述了,直接上代码,本次使用的是iText7
注意两个依赖的版本对应,进入html2pdf的pom文件就能看到itext的版本,font-asian的版本最低也要是html2pdf中itext7的版本。
导出pdf一般是需要水印和页码的,我们只要实现com.itextpdf.kernel.events.IEventHandler接口就可以了
水印
水印代码
页码
页码代码
转换工具类
测试代码
- 页面中不能出现html的特殊字符标记,如 等(代码中已经处理,所有都替换为空)可忽略
- 页面中的图片路径,必须是在项目根路径后面的所有地址(相对路径)例如:
- 页面中的标签要符合规范,必须都具有结束标签等
展示:
HTML
wkhtmltopdf是一个用webkit网页渲染引擎开发的用来将html转成 pdf的工具,可跟多种脚本语言进行集成来转换文档,有windows、linux等平台版本。
Wkhtmltopdf可直接把浏览器中浏览的网页转换成一个pdf,他是一个把html页面转换成pdf的软件(需要安装在服务器上)。使用时可通过java代码调用cmd指令完成网页转换为pdf的功能。
下载wkhtmltopdf官网地址:https://wkhtmltopdf.org/downloads.html
功能测试:
在安装目录 bin 执行如下命令生成 PDF
效果图:
为了方便使用:可自行配置全局环境变量哈
注意事项:
如果是转换本地HTML页面,可能会出现图片禁止访问类型的错误,可加上以下命令进行转换,这是因为wkhtmltopdf升级版本之后默认禁止了访问
整合后命令:
安装
配置环境变量
在最后一行加 export PATH=$DIR/wkhtmltox/bin:$PATH 保存退出、
功能测试
运行 wkhtmltopdf
报:以下错误
报wkhtmltopdf: error while loading shared libraries: libXrender.so.1: cannot open shared object file: No such file or directory这个错,请运行 apt-get/yum install libXrender*
运行 wkhtmltopdf 报wkhtmltopdf: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory这个错,请运行apt-get/yum install libfontconfig*
运行 wkhtmltopdf 报wkhtmltopdf: error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory这个错,请运行 apt-get/yum install libXext*
总的来说就是缺少依赖,下载安装依赖
优点:
支持中文、图片、CSS等
缺点:
有时对于html文件的转化可能比较慢,对于url的转化速度较快。存在失真情况
wkhtmltopdf工具安装bin地址
转换工具类
线程执行类
将文档从一种格式转换为另一种格式是Spire.Doc的主要功能之一。这种转换只不过是加载和保存操作的组合。因此,使用Spire.DOC可以将文档从任何受支持的加载格式转换为任何受支持的保存格式。
注意:spire.doc分为商业版和免费版,免费版只支持转换前3页,本次示例采用免费版演示
Maven仓库路径
引入依赖
spire转换工具类
至此就完结啦,可自行根据需求进行选择哦,测试效果和上面截图一样,此处就不进行展示啦
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/5680.html