当我尝试使用Android Java为Epson收据打印机打印缅甸Unicode字体时,仅显示问号。任何人都知道如何打印。
这是我的代码:
String method = "";
StringBuilder textData = new StringBuilder();
String mmText = "ဘြဲ႕ ဘယ္လိုရခဲ့ပါလိမ့္";
mmText = URLEncoder.encode(mmText, "US-ASCII");
textData.append(mmText + " 9.99 R\n");
textData.append("410 3 CUP BLK TEAPOT 9.99 R\n");
method = "addText";
method = "addCut";
mPrinter.addCut(Printer.CUT_FEED);
非常感谢
答案 0 :(得分:0)
我不确定对此是否有解决方案。您的代码没有多大意义,但是给了我一些提示:
method = ...
分配是从示例代码中借用的,其中method
变量用于在封闭的异常处理程序中打印错误消息。查看SDK参考手册,很难确定应该如何使用它。 addText
实际上是在向打印机发送文本,并且显然是在将字符串转换为打印机可以理解的内容。问题是...它了解什么?
显然addTextLang
是您应该选择的语言或编码方式(文档同时使用两个术语!)。显然,打印机的技术文档应告诉您所支持的语言。
如果打印机不支持该语言,则可能是您不走运。据我所知,是SDK /驱动程序将Unicode代码点转换为代码表中的值。将代码表中的代码转换为字形的打印机。如果打印机不理解给定语言的代码表,则将无法生成要打印的字形。 (我的猜测是,SDK使用Java Charset
进行Unicode到代码表的编码,问号是Charset
所说的“没有映射”的方式。 / p>
另一种可能性是使用自己的Unicode字符串进行位图渲染,并使用addImage打印图像。