HTML全文转化为PDF技术选型研究与流行方法汇总

  在实际也无需求中,需要用到网页快照功能,并能够查看历史网页快照功能,因此需要实现网页格式的固化保存,保存为图片或PDF文件的形式。

技术研究

  做这样研究了网上许多技术,大都存在各种各样的缺陷。

1.html2canvas&jsPDF

  感兴趣的读者,可以参考: https://github.com/linwalker/render-html-to-pdf
  该种方法,主要是通过JS调用实现,无法通过脚本,或者Java API的方法调用来实现转化工作。

2.iTextRender&pdfWriter

  这种方式能够实现简单的Html2PDF功能,但存在以下缺点
1. 对网页格式要求较高;
2. 无法对图片等复杂元素进行处理。
主要参考博文:
Itext的PDF生成方案
freemarker+ITextRenderer 生成html转pdf
iTextRenderer(Flying Saucer) HTML转PDF

3.pdf-kit

  pdf-kit主要通过JS生成PDF文件,在HTML截图方面比较欠缺,作者没有发现能够用于截图功能。
PDF-KIT官网

4.cssbox

  cssbox主要用作前段css渲染功能,但没有提供输出为图片或PDF接口。
CSSBOX源码文件与说明

5.Phantomjs

  爬虫或自动化测试重量级程序,能够实现爬虫功能与自动化测试任务。并能够使用代理服务器,或输出HTML为图片或DPF文件的形式。能够输出单个网页控件的图片或DPF文件,实现精准输出。

  但Phantomjs存在如下问题:
1. 相应速度较慢;
2. 调用繁琐,需要自己写JS脚本。

6.Headless Chrome or other browser

  使用无头浏览器,调用snapshot接口,能够实现截图功能。

7.HtmlUnitDriver调用浏览器API

使用HtmlUnitDriver调用浏览器API,如Chrome、Firefox、IE等主浏览器,均能实现截图功能。

缺点:
1. 需要编写程序,调用API;
2. 无法直接调用脚本实现截图功能。

wkhtmltopdf

  该程序能够实现将Html转化为图片,或PDF文件的功能,具体下载地址为:wkhtmltopdf官网下载

安装流程

## Download from Org website
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

## uncompress
 tar xvJf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

## install font : chinese : 宋体
## /usr/share/fonts/XXX

  安装中文字体,主要是考虑到网页内容为中文会出现中文乱码问题。

调用

## to pdf
wkhtmltopdf http://www.baidu.com ~/baidu.pdf

## to image
wkhtmltopdf http://www.baidu.com ~/baidu.png

具体详情,可以参考wkhtml2pdf的帮助信息。

选择原因

  1. 可以通过shell直接调用;
  2. 支持多线程并发操作;
  3. 调用简单、方便。

存在缺点

  1. 存在TimeoutError;
  2. 偶尔存在加载阻塞,无法正常加载网页内容。这些网页通常是信息量较大、存在高清图片等问题。

总结

  1. 如果需要HTML全文转化,那么wkHtml2PDF可以作为首要选项;
  2. 如果需要获取HTML中部分元素进行转化为图片、PDF,那么phtomjs是一个很好的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值