我有一个 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_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;
});