printKhmerTextAsImage method
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);
});
}
}