canvas文本换行

var canvas = document.getElementsById("canvas");
var ctx = canvas.getContext();

ctx.setFillStyle('#808080') // 文字颜色:黑色
ctx.setFontSize(32)        // 文字字号:24px
that.drawText(ctx, text, 40, 1160, 90, 470, 42);

//文本换行 参数:1、canvas对象,2、文本 3、距离左侧的距离 4、距离顶部的距离 5、标题高度 6、文本的宽度 7、行高
  drawText: function(ctx, str, leftWidth, initHeight, titleHeight, canvasWidth, lineHeight) {
      var lineWidth = 0;
      var lastSubStrIndex = 0; //每次开始截取的字符串的索引
      for (let i = 0; i < str.length; i++) {
          lineWidth += ctx.measureText(str[i]).width;
          if (lineWidth > canvasWidth) {
              ctx.fillText(str.substring(lastSubStrIndex, i), leftWidth, initHeight); //绘制截取部分
              initHeight += fontSize; //16为字体的高度
              lineWidth = 0;
              lastSubStrIndex = i;
              titleHeight += fontSize;
          }
          if (i == str.length - 1) { //绘制剩余部分
              ctx.fillText(str.substring(lastSubStrIndex, i + 1), leftWidth, initHeight);
          }
      }
      // 标题border-bottom 线距顶部距离
      // titleHeight = titleHeight + 10;
      return titleHeight
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容