paint method

  1. @override
dynamic paint(
  1. PrinterCanvas canvas,
  2. PrinterOffset offset
)
override

渲染

Implementation

@override
paint(PrinterCanvas canvas, PrinterOffset offset) {
  String? displayText = this.getDisplayText(dataSource);
  if (displayText == null || displayText.isEmpty) {
    return;
  }
  var actualStyle = style!.extendsStyle(canvas.defaultConfig!.fontStyle!);

  var lines = canvas.splitLine(displayText, actualSize!.width!.toInt(),
      actualStyle);

  int lineHeight = canvas.getTextLineHeight(actualStyle);
  int bottom = 0;
  int i = 0;
  while (bottom + lineHeight < actualSize!.height! && i < lines.length) {
    canvas.drawText(
        lines[i],
        offset.translate(actualOffset!.x!, actualOffset!.y! + bottom),
        actualSize!,
        actualStyle);
    i++;
    bottom += lineHeight;
  }
}