paragraph static method
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;
}
}