我遇到问题,通过蓝牙在热敏打印机上从 pdf 文件打印变成文本视图。
通过蓝牙打印机Android打印Pdf文件我尝试过这些示例,但没有达到我的预期。
这是我当前的代码
代码文件来源:
String checkout = "checkout";
String fpath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) +"/"+ checkout + ".pdf";
打印代码
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
for (int readNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf, 0, readNum);
System.out.println("read " + readNum + " bytes,");
}
} catch (IOException ex) {
System.out.println("ERROR!");
}
byte[] bytesPDF = bos.toByteArray();
byte[] printformat = { 27, 33, 0 }; //try adding this print format
mService.write(printformat);
mService.write(bytesPDF);
我希望能够通过热敏蓝牙打印机打印pdf文件。请帮我。谢谢你。
问题很明确。我们可以看到打印的收据具有格式语法。它用于格式化 PDF 文件中的文本和图像。因此,您尝试打印的打印机不支持打印 PDF 文件。因此,如果可能的话,您应该以兼容的格式提供文件,例如文本文件。
要了解有关在蓝牙打印机中格式化文本的更多信息,您可以查看这篇文章这里。让我知道这是否能解决您的问题。
热敏打印机的工作原理是
因此,这里的问题归结为要发送的数据的格式是什么,以便打印机能够理解它并进行相应的打印。这取决于打印机的制造商。这些编码要么有详细记录,打包到 SDK/驱动程序中使用,要么是 ESC/POS 通用打印机的开源标准编码。
最后,打印PDF文件需要做的是-
例如,请查看以下 GitHub 存储库中的通用 ESC/POS 实现 https://github.com/DantSu/ESCPOS-ThermalPrinter-Android
PrinterTextParserImg.bitmapToHexadecimalString()
客户文案 - AEPS 提现 日期和时间:2024 年 2 月 3 日 07:23 PM 终端 ID:NSDAZ0001012307 代理编号:260784 BC 名称:Spice Money Limited(原 Spice Digital Limited) BC省地点:莫哈里 阿德哈尔编号:xxxx-xxxx-8169 注册号码:403419139209 UIDAI授权码:00 斯坦:271499 交易状态:成功 金额:卢比。 1000 响应代码:00 回复信息: 金额为卢比。已提款1000 你的帐户 。现在您当前的账户余额是 卢比。 00.00