大概的实现步骤:
解析 html 页面,生成一个包含节点位置信息,样式,层级,内容等信息的 DOM 树。
递归 DOM 树,根据节点据顶部的高度和生成页面规格的高度,将节点分配到不同的页面。
调用jspdf.js的 api,将节点绘制到 PDF 文件上。
优点:
生成的是矢量的 PDF ,可以对 PDF 的文本进行搜索,选中,编辑。
生成的文件体积很小
使用简单,一行代码即可将 html 页面转成 pdf
精准的分页,避免元素被切割。
如果文件体积不大,而且电脑性能支持,可以生成几千页的 PDF
1
devilte 17 小时 10 分钟前 以前有被这种分页问题困扰过,先 star 了 支持一下
|
2
Razio 16 小时 36 分钟前
啊?我咋之前做的都是几百上千页的。。没用 jspdf
|
7
narmgalaxy 14 小时 49 分钟前 |
8
logictan89 10 小时 58 分钟前
啊?
[AI 帮我写的]( https://tools.logiconsole.com/#/markdown-to-pdf) |
9
XR843 10 小时 6 分钟前
1. 纯前端矢量 PDF 生成
- 无需后端服务,一行代码即可在浏览器端将 HTML/DOM 转换为真正的矢量 PDF - 生成的 PDF 可编辑、可搜索文本,非图片形式,文件体积更小 2. 支持超长文档分页 - 突破 canvas 高度限制,支持生成数千页的 PDF 文档 - 内置智能分页功能,自动处理页面断点 3. 丰富的样式支持 - 文本:字体、大小、颜色、描边等 - 边框:宽度、颜色、样式、圆角 - 背景:渐变、阴影效果 - 支持 Canvas 和 SVG 元素直接渲染 4. 灵活的自定义配置 - 支持自定义字体( base64 编码,解决中文等非英文字体问题) - 可配置页眉页脚 - 支持多种页面尺寸( A4 、Letter 等) - PDF 加密和权限控制 5. 基于成熟技术栈 - 底层依赖 html2canvas + jsPDF 两大成熟库 - TypeScript 开发,类型安全 - 支持 NPM/CDN 多种引入方式,广泛的浏览器兼容性( IE9+) |
10
usn PRO 加油
|
11
XHalso 7 小时 42 分钟前
首页 demo 下载丢失最后一个折线图
|