从 html 到 pdf,为 Slowly 信件换衣裳

本文讲述了作者如何利用html2canvas和jsPDF将Slowly应用中的信件从HTML格式转换成美观的PDF文档。通过html2canvas保持原有CSS样式并转换为canvas,然后用jsPDF将canvas处理成PDF,解决了直接打印样式不美观的问题。在处理多封信件时,还解决了异步操作顺序和图片分页的挑战。
摘要由CSDN通过智能技术生成

有一天,我发现 Slowly 应用有 web 端,网页也是简洁的风格,看着陈列的一封封信件,产生想要保存的想法,于是开始了从 html 到 pdf 的换装之旅。

Slowly

Slowly,是一个慢的应用,在这里可以结识天南地北的笔友,交流的信件根据地点不同,派送时间从几天到几小时不等。在这里可以讨论各种东西,每次看到派送的小箭头,心中一片期待。我很喜欢这里。

选型

window 对象上有 print 方法,可以直接调用系统的打印方法,选择保存为 pdf,粗暴解决问题。在我的这个场景下,如此会保存整个窗口的内容,样式不美观,我不满意这种效果。看了一些资料后,我选择的方法借助 jsPDF 和 html2canvas 两个三方库,html2canvas 用于把 html 页面转化为 canvas,如此可以保持页面原有的 css 样式,处理 canvas 为图片后,使用 jsPDF 插入 pdf 文档,解决核心问题。

const canvas = await html2canvas(dom);

pdf.addImage(canvas.toDataURL('image/png'), 'PNG', 0, 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值