支持的HTML标签、CSS属性较全,转换失真比较小,可以使用HTML+CSS实现精确的布局控制。对网页文件标签、CSS语法错误的容错性比较好。对不用额外的控制,就支持图片的转化输出。
该软件的缺点是:
不开源,最新的demo版本,下载测试以后,发现不支持中文转换。必须购买商业版本才可以。(这里很坑,测试乱码问题通不过,后面发现是本来就不支持)。破解后的一些旧版本可以解决乱码问题,但是支持的css样式没有新版本的全。
测试结果:

测试说明:
新版本的中文乱码,但是支持部分css样式。老版本的破译后,界面的样式兼容性差,对bootsrtap的支持性低,就基本的可以出一个数据,展示图片没有问题。考虑到是收费软件,并且性能也不够完善,对于普通页面可采用模板导出或其他的工具导出,不建议使用。
5.html2canvas测试
html2canvas是一个相当不错的JavaScript类库,它使用了html5和css3的一些新功能特性,实现了在客户端对网页进行截图的功 能。html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能。它不需要来自服务器任何渲染,整张图片都是在客户端浏览器创建。当浏览器不支持Canvas时,将采用Flashcanvas或 ExplorerCanvas技术代替实现。以下浏览器能够很好的支持该脚本:Firefox 3.5+, Google Chrome, Opera新的版本, IE9以上的浏览器。因为每个浏览器渲染页面的方式都不尽相同,所以生成的图片也不太一样。虽然它目前还是处理开发阶段,但还是很值得期待的。这个插件依赖于jQuery插件,建议使用最新版的。
不支持跨域图片不能在浏览器插件中使用部分浏览器上不支持SVG图片不支持Flash不支持ifream(可修改js原始代码,支持ifream)
本次使用html2canvas做测试时,发现很多项目页面可正常截图,包括echart图表。仅对少量css3的新特性不支持。在截图效果上面较好。但是在测试应用时,发现了一个致命的问题,当页面模块调用html2canvas截图后,发现原来页面的部分css突然失效。跟踪分析后,发现是html2canvas的js函数处理它不能识别的css样式。特别是对隐藏和显示的模块,支持不友好。

页面截图效果如下:

但是原有页面的css失效,页面出现异常,隐藏的部分样式,显示的样式展示混乱。

测试说明:
通过测试发现,html2canvas对bootstap的样式支持较好。对css3的新特性如圆形图片样式支持行不好。它的主要优点是轻前端,对于改变原有页面的样式问题,可先导出图片后,重新刷新一次页面。
6.总结
通过对以上案例的测试,网上介绍的常用html转换为pdf的方法,大多数就是简单的html转换可用,但是在实际应用中,还是存在诸多问题,难以应用。通过对这些方法的实现原理分析,可得出以下结论:
html网页完整转换为pdf,所有的方案均有不足。若只是部分表单页面,html样式尽量不采用css3的属性,可用客户端模式和html2canvas处理。html前端样式发展快,css3新特性效果好,css定义了新的规则,语法。IText和Flying Sauser这样的java转换类根本兼容不了这些变化,因为无法及时写出转换的函数,并且这些开源项目是较老的技术,后期的开源团队已经停止维护和更新了。PD4ML本质也是java处理css的样式转换,他是商业软件,在兼容css3方面有团队支持,相对IText和Flying Sauser在性能和功能方面都更强大。但对少部分css样式也支持不好。并且中文乱码问题解决也不便。针对客户端浏览器内核模式,PhantomJS和wkhtmltopdf比较而言,PhantomJS更强大,截图仅仅只是其中的一个小功能,通过它还可以做网页分析,建议使用PhantomJS。html2canvas的截图模式灵活,是轻量级的前端截图工具。目前来说,部分功能不全,但整体效果还不错,针对部分截图影响原页面的问题,可先截图保存成功后,在刷新一次页面,达到截图导出到pdf的效果。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助~如果有疑问大家可以留言交流,谢谢大家对的支持!
HTML页面跳转及参数传递问题这篇文章给大家详细介绍了HTML页面跳转及参数传递问题,需要的朋友参考下吧
HTML实现双11抢劵(设定时间打开抢券的页面)本文给大家分享一段代码关于双11抢券,写一个自动打开页面的html,仅仅是设定时间打开抢券的页面,代码简单易懂
HTML 表单组件实例代码本文通过实例代码给大家介绍了HTML 表单组件的知识,非常不错,具有参考借鉴价值,需要的朋友参考下吧
HTML实现海康摄像头实时监控功能最近公司安排我做一个ccfa的小东东,其中有一项需求就是做一个网页播放摄像头的实时监控功能,对于我这个小菜鸟
html页面中完成查找功能html页面的查找功能主要是实现在查找框内输入字符,下面通过本文给大家分享html页面的查找功能,需要的朋友参考下
HTML页面自动清理js、css文件的缓存(自动添加版本号)这篇文章主要介绍了HTML页面自动清理js、css文件的缓存(自动添加版本号),小编觉得挺不错的,现在分享给大家,也