如何在flutter中使用蓝牙打印机打印阿拉伯文字账单

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

我有一个 flutter 应用程序,我需要使用蓝牙热敏打印机打印阿拉伯文本帐单
我正在使用 print_bluetooth_ Thermal 软件包来查找蓝牙打印机
我的热敏收据打印机型号是 'MP210'
并使用 esc_pos_utils_plus 制作收据并打印
就像您在这段代码中看到的那样:

// Initialize printer
bool isConnected = await PrintBluetoothThermal.connectionStatus;
if (!isConnected) {
 await PrintBluetoothThermal.connect(
  macPrinterAddress: selectedPrinter!.macAdress,
 );
}

// Configure paper size and style
final profile = await CapabilityProfile.load();
final generator =
Generator(is58mm ? PaperSize.mm58 : PaperSize.mm80, profile);

// Build Bill
List<int> bytes = [];
// i want 'مرحبا' text instead of the 'Hello' text
bytes += generator.text(
        'Hello',
        styles: const PosStyles(
          bold: true,
          align: PosAlign.center,
          height: PosTextSize.size1,
          width: PosTextSize.size1,
        ),
      );
// Cut
bytes += generator.cut();

// Send
await PrintBluetoothThermal.writeBytes(bytes);

// Disconnect
await PrintBluetoothThermal.disconnect;

问题是我想在账单中打印阿拉伯文文本
bc esc_pos_utils_plus 不支持不同字体
我试图制作一份 pdf 帐单,但问题是它无法使用上面的包装进行打印机。 如果没有像 raw.bt 这样的第三方应用程序,我无法从蓝牙打印机打印 pdf 帐单 我尝试了将 pdf 转换为图像,但它并没有变得那么好,因为打印收据需要很多时间,而且账单总是显示不在中心,有时字母的编码如下“%$” ^#'...

任何解决方案♥

flutter printing bluetooth thermal-printer bluetooth-printing
1个回答
0
投票

在尝试了我使用的多个解决方案后,我正在寻找同样的东西flutter_screen_shot 它将捕获屏幕或您想要打印的小部件,然后您将字节传递给打印机

  ScreenshotController screenshotController =
      ScreenshotController(); //Capture!!
  screenshotController
      .captureFromWidget(Container(
          padding: const EdgeInsets.all(30.0),
          decoration: BoxDecoration(
            border: Border.all(color: Colors.blueAccent, width: 5.0),
            color: Colors.redAccent,
          ),
          child: Text("This is an invisible widget")))
      .then((image) async {
    await PrintBluetoothThermal.writeBytes(image.toList());
    await PrintBluetoothThermal.disconnect;
  });
© www.soinside.com 2019 - 2024. All rights reserved.