我们可以使用esc_pos_printer打印马拉地语文本吗:^4.1.0

问题描述 投票:0回答:1

在我的项目中,我想用马拉地语打印文本,这可能吗? 这是我的代码

Future<void> printMarathiText() async {
    final profile = await CapabilityProfile.load();
    final printer = NetworkPrinter(PaperSize.mm80, profile);
    List<int> bytes = [];
    final generator = Generator(PaperSize.mm80, profile);
    await connectToPrinter();

    bytes += generator.text('मराठी मध्ये टेक्स्ट प्रिंट करणारा प्रिंटर',
        styles: const PosStyles(
          align: PosAlign.center,
          height: PosTextSize.size1,
          width: PosTextSize.size1,
        ),
        linesAfter: 1);

    printer.cut();
    printer.disconnect();
  }

我收到错误为

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Invalid argument (string): Contains invalid characters.: "मराठी मध्ये टेक्   स्ट प्रिंट करणारा प्रिंटर"

这个问题有什么解决办法吗?

flutter thermal-printer escpos
1个回答
0
投票

使用以下代码:

Future<void> printMarathiText() async {
  final profile = await CapabilityProfile.load();
  final printer = NetworkPrinter(PaperSize.mm80, profile);
  final generator = Generator(PaperSize.mm80, profile);
  await connectToPrinter();

  // Encode Marathi text as UTF-8
  final marathiText = 'मराठी मध्ये टेक्स्ट प्रिंट करणारा प्रिंटर';
  final marathiBytes = utf8.encode(marathiText);

  // Use a suitable font that supports Marathi characters
  final font = PosFont.custom(
    codeTable: 'CP1252', // Use the code table that matches your font
    width: 2,
    height: 2,
  );

  // Print Marathi text
  generator.textCustom(
    marathiBytes,
    styles: const PosStyles(
      align: PosAlign.center,
      height: PosTextSize.size2,
      width: PosTextSize.size2,
    ),
    linesAfter: 1,
    customStyles: [font],
  );

  printer.cut();
  printer.disconnect();
}
© www.soinside.com 2019 - 2024. All rights reserved.