大概的实现步骤:
解析 html 页面,生成一个包含节点位置信息,样式,层级,内容等信息的 DOM 树。
递归 DOM 树,根据节点据顶部的高度和生成页面规格的高度,将节点分配到不同的页面。
调用jspdf.js的 api,将节点绘制到 PDF 文件上。
优点:
生成的是矢量的 PDF ,可以对 PDF 的文本进行搜索,选中,编辑。
生成的文件体积很小
使用简单,一行代码即可将 html 页面转成 pdf
精准的分页,避免元素被切割。
如果文件体积不大,而且电脑性能支持,可以生成几千页的 PDF
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.