drawText method

  1. @override
void drawText(
  1. PdfTextRun run
)
override

Implementation

@override
void drawText(PdfTextRun run) {
  if (run.invisible) return;
  final glyphs = run.glyphs;
  if (!stripsActive ||
      delegateText ||
      glyphs == null ||
      !run.fill ||
      run.strokeColor != null ||
      run.gradient != null) {
    // substituted-font runs, stroked/gradient text, knockout/blended runs
    _delegatePaint(() => delegateDrawText(run));
    return;
  }
  if (!binningEnabled) return;
  final color = stripArgbColor(run.color, 1);
  for (final glyph in glyphs) {
    final outline = glyph.outline;
    if (outline == null) continue;
    final emToDevice = PdfMatrix.translation(glyph.offset, glyph.offsetY)
        .concat(run.transform)
        .concat(pageToDevice);
    generator.fillOutline(FlattenedOutline.of(outline), emToDevice, color);
  }
}