printKhmerTextAsImage method

Future<void> printKhmerTextAsImage(
  1. String khmerText
)

Implementation

Future<void> printKhmerTextAsImage(String khmerText) async {
  final recorder = ui.PictureRecorder();
  final canvas = Canvas(recorder);
  final style = TextStyle(
    fontSize: 28,
    fontFamily: 'NotoSansKhmer',
    color: Colors.black,
  );

  final span = TextSpan(text: khmerText, style: style);
  final painter = TextPainter(text: span, textDirection: TextDirection.ltr);
  painter.layout(maxWidth: 576);
  painter.paint(canvas, const Offset(10, 10));

  final picture = recorder.endRecording();
  final image = await picture.toImage(576, 80);
  final byteData = await image.toByteData(format: ui.ImageByteFormat.png);
  final decoded = img.decodeImage(byteData!.buffer.asUint8List());

  if (decoded != null) {
    await _connectAndExecute((printer) async {
      printer.image(decoded);
    });
  }
}