paintShape method

  1. @override
void paintShape(
  1. PdfGraphics canvas
)
override

Implementation

@override
void paintShape(PdfGraphics canvas) {
  canvas
    ..saveContext()
    ..setTransform(Matrix4.identity()
      ..scale(1.0, -1.0)
      ..translate(x, -y!));

  if (brush.fill!.isNotEmpty) {
    brush.fill!.setFillColor(this, canvas);
    if (brush.fillOpacity! < 1) {
      canvas
        ..saveContext()
        ..setGraphicState(PdfGraphicState(opacity: brush.fillOpacity));
    }
    canvas.drawString(font, brush.fontSize!.sizeValue, text, 0, 0);
    if (brush.fillOpacity! < 1) {
      canvas.restoreContext();
    }
  }

  if (brush.stroke!.isNotEmpty) {
    if (brush.strokeWidth != null) {
      canvas.setLineWidth(brush.strokeWidth!.sizeValue);
    }
    if (brush.strokeDashArray != null) {
      canvas.setLineDashPattern(brush.strokeDashArray!);
    }
    if (brush.strokeOpacity! < 1) {
      canvas.setGraphicState(PdfGraphicState(opacity: brush.strokeOpacity));
    }
    brush.stroke!.setStrokeColor(this, canvas);
    canvas.drawString(font, brush.fontSize!.sizeValue, text, 0, 0,
        mode: PdfTextRenderingMode.stroke);
  }

  canvas.restoreContext();

  for (final span in tspan) {
    span.paint(canvas);
  }
}