splitLine method

List<String> splitLine(
  1. String str,
  2. int contentWidth,
  3. PrinterTextStyle style
)

文字自动换行裁剪

str 文字

contentWidth 限制范围

style 文字样式

Implementation

List<String> splitLine(String str, int contentWidth, PrinterTextStyle style) {
  int cnCharWidth = this.getFontWidth(style);
  if (contentWidth < cnCharWidth) { // 如果宽度小于字体宽度,则每行一个
    return str.split('');
  }
  List<String> result = <String>[];

  while (str != "") {
    var length = this.estimateLength(str, contentWidth, style);
    result.add(str.substring(0, length));
    str = str.substring(length);
  }

  return result;
}