开源了一个前端 html 生成 pdf 的 js 库,各项指标是目前主流方案(周下载 80 万)的数倍到数十倍

8 小时 51 分钟前
 lmq1919

目前前端 html 转 pdf 的主流方案是先用 html2canvas 将 html 转成图片,再将图片绘制到 pdf 上,本质是披着 pdf 外衣的图片,代表 js 库就是 html2pdf.js ,在 npm 周下载量达到了 80 万。

dompdf.js

这是我开源的前端 html 生成 pdf 的库,用了和目前主流方案完全不同的思路,可以直接在前端生成可编辑的,非图片式的矢量 pdf

在线体验

https://dompdfjs.lisky.com.cn

Git 仓库地址 (欢迎 Star⭐⭐⭐)

https://github.com/lmn1919/dompdf.js

核心特性

html2pdf.js 与 dompdf.js 对比

指标 说明
生成速度 同样的内容,dompdf.js 生成速度更快,耗时基本上只有 html2pdf.js 的 1/2 。
文件体积 dompdf.js 生成的 pdf 文件体积更小,同样的内容页数,dompdf.js 生成的 pdf 文件体积是 html2pdf.js 的 1/5 左右。
文件清晰度 文件放大后,html2pdf.js 生成的 pdf 文字会出现明显的锯齿,而 dompdf.js 生成的 pdf 文字则完全没有压力。
生成页数 html2pdf.js 在 30 页左右,由于 canvas 高度限制,就会出现空白页,而 dompdf.js 轻松可以生成数百上千页的 pdf ,取决于你的浏览器内存。
758 次点击
所在节点    分享创造
8 条回复
THESDZ
8 小时 20 分钟前
PDF generation failed: Error: Invalid arguments passed to jsPDF.context2d.fillText
MyDearFather
8 小时 7 分钟前
忒中力,喃试试
Razio
7 小时 58 分钟前
感觉这种还是挺影响样式的。然后随便点了几次打印,我看你网站的图片延迟已经开始到十几秒了,危险啊,不行整点缓存吧
knva
7 小时 50 分钟前
卡了
chairuosen
7 小时 29 分钟前
我感觉主流的还是用 chromium 内核转 pdf 吧?这样 CSS 兼容性最好。你这个方案是重新实现了一遍 CSS 么? CSS3 样式支持怎么样?
wangwen135
5 小时 7 分钟前
👍
korvin
3 小时 30 分钟前
试试,刚好前段时间写一个网页转 pdf 的结果出来是图片就放弃了
hoythan
3 小时 0 分钟前
我觉得 PDF 核心是为了解决不同设备样式不统一的问题,编辑功能反而对“前端生成 PDF”需求来说是次要的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/1195942

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX