paragraph static method

Paragraph? paragraph(
  1. String text,
  2. UPdfFont font,
  3. Color color
)

Implementation

static ui.Paragraph? paragraph(String text, UPdfFont font, Color color) {
  final String lower = font.baseFont.toLowerCase();
  final bool bold = lower.contains("bold") || lower.contains("black") || lower.contains("heavy");
  final bool italic = lower.contains("italic") || lower.contains("oblique") || font.italicAngle.abs() > 4;
  final String key = "${_family(font.baseFont)}|$bold|$italic|${color.toARGB32()}|$text";
  final ui.Paragraph? cached = _cache.get(key);
  if (cached != null) return cached;
  try {
    final ui.ParagraphBuilder builder = ui.ParagraphBuilder(
      ui.ParagraphStyle(
        fontFamily: _family(font.baseFont),
        fontSize: 1,
        fontWeight: bold ? FontWeight.w700 : FontWeight.w400,
        fontStyle: italic ? FontStyle.italic : FontStyle.normal,
        textDirection: TextDirection.ltr,
        maxLines: 1,
      ),
    );
    builder.pushStyle(ui.TextStyle(color: color, fontSize: 1));
    builder.addText(text);
    final ui.Paragraph paragraph = builder.build();
    paragraph.layout(const ui.ParagraphConstraints(width: 1000));
    _cache.put(key, paragraph);
    return paragraph;
  } on Object {
    return null;
  }
}