大概的实现步骤:
-
解析 html 页面,生成一个包含节点位置信息,样式,层级,内容等信息的 DOM 树。
-
递归 DOM 树,根据节点据顶部的高度和生成页面规格的高度,将节点分配到不同的页面。
-
调用
jspdf.js的 api,将节点绘制到 PDF 文件上。
优点:
-
生成的是矢量的 PDF ,可以对 PDF 的文本进行搜索,选中,编辑。
-
生成的文件体积很小
-
使用简单,一行代码即可将 html 页面转成 pdf
-
精准的分页,避免元素被切割。
-
如果文件体积不大,而且电脑性能支持,可以生成几千页的 PDF
