需求:项目里有个打印的功能,需要把打印的内容转换成图片或者pdf传给后端,后端拿来推送邮件。
技术:vue3 + html2canvas + printJS。
问题:网上查找到的相关方法都是什么了一大坨base64,体积太大110kb,甚至更多,不是很好的方案,有没有更好的方法?
参考网址:https://blog.nowcoder.net/n/a37d9b0407cc4d14a88166d202db8861
需求:项目里有个打印的功能,需要把打印的内容转换成图片或者pdf传给后端,后端拿来推送邮件。
技术:vue3 + html2canvas + printJS。
问题:网上查找到的相关方法都是什么了一大坨base64,体积太大110kb,甚至更多,不是很好的方案,有没有更好的方法?
参考网址:https://blog.nowcoder.net/n/a37d9b0407cc4d14a88166d202db8861
3 回答3.3k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
图片体积过大,这是因为toDataURL()方法默认生成的是PNG格式的图片,PNG格式的图片质量较高,体积大。你可以把图片格式改为JPEG,在设置一个质量参数,比canvas.toDataURL('image/jpeg', 0.8),这样就可以减小生成图片的体积。转成 PDF 格式给后台或者用 canvas 绘制你的图片打印内容后,再把生成的图片进行压缩,传给后台