html2canvas生成图片时踩到的坑

html2canvas生成图片时踩到的坑

  1. html2canvas ,是H5生成图片常用的框架,但是由于以前没有用过踩到了N多的坑,现在写下来好让自己以后再用时能注意这些问题;
  2. vue 工程下安装html2canvas
	npm install html2canvas

npm 安装后需要在使用界面引入

	import html2canvas from 'html2canvas'
  1. html2canvas的代码
 makeImg() {
   html2canvas(this.$refs.cardContent, {useCORS: true, logging: true}).then(canvas => {
         return canvas.toDataURL().split(',')[1];   //BASE64 的 图片URL
         });
 }

其中 this.$refs.cardContent就是你要截取的H5的元素,可以用document来获取这个元素,也可以用$refs来获取元素;

{useCORS: true, logging: true} 这两个属性是在网上查的,记得是H5元素中如果存在图片处理图片跨域的问题,但是不好用!!! 或许是使用的不正确,就因为这个图片跨域的问题浪费了大量的时间(当时已经把从服务器获取到的图片转成了BASE64 html2canvas 依然获得不到那张图片);

  1. html2canvas不支持很多CSS样式,大体如下
    在这里插入图片描述
    因为做的项目有竖版文字的排列开始用的css属性是writing-mode样式只能为了html2canvas放弃。

  2. 关于竖版文字排版遇到标点符号乱行的问题
    在这里插入图片描述
    大体问题就是任意标点符号会和图上的 ‘是’ 并排成一行:注意是一行!!!,而 ‘也’ 的上面还是会保留那个空格。最开始一直找不到原因,只是在网上去看html2canvas 的运行机制,是如何再画布上写出选中元素的 ;无果。
    想到了一个笨方法,把‘,’放再一个div里面。
    通过正则表达式匹配当前的字符串

                let reg = new RegExp(',','g');
                this.currSentiment[i]= this.currSentiment[i].replace(reg,'<div>,</div>');

再放入H5的时候使用VUE 的v-html 属性屏蔽掉div。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是十年是思念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值