vue3 + html2canvas + print.js怎么把打印的内容转换成图片传给后台?

需求:项目里有个打印的功能,需要把打印的内容转换成图片或者pdf传给后端,后端拿来推送邮件。
技术:vue3 + html2canvas + printJS。
问题:网上查找到的相关方法都是什么了一大坨base64,体积太大110kb,甚至更多,不是很好的方案,有没有更好的方法?
参考网址:https://blog.nowcoder.net/n/a37d9b0407cc4d14a88166d202db8861

阅读 2.6k
1 个回答

图片体积过大,这是因为toDataURL()方法默认生成的是PNG格式的图片,PNG格式的图片质量较高,体积大。你可以把图片格式改为JPEG,在设置一个质量参数,比canvas.toDataURL('image/jpeg', 0.8),这样就可以减小生成图片的体积。转成 PDF 格式给后台或者用 canvas 绘制你的图片打印内容后,再把生成的图片进行压缩,传给后台

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题