如何使用Android Java在EPSON收据打印机上打印缅甸Unicode字体?

时间:2019-03-30 08:00:11

标签: java android

当我尝试使用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);

非常感谢

1 个答案:

答案 0 :(得分:0)

我不确定对此是否有解决方案。您的代码没有多大意义,但是给了我一些提示:

  • 您显然正在使用适用于Android的Epson EPOS SDK。
  • 奇怪的method = ...分配是从示例代码中借用的,其中method变量用于在封闭的异常处理程序中打印错误消息。

查看SDK参考手册,很难确定应该如何使用它。 addText实际上是在向打印机发送文本,并且显然是在将字符串转换为打印机可以理解的内容。问题是...它了解什么?

显然addTextLang是您应该选择的语言或编码方式(文档同时使用两个术语!)。显然,打印机的技术文档应告诉您所支持的语言。

如果打印机不支持该语言,则可能是您不走运。据我所知,是SDK /驱动程序将Unicode代码点转换为代码表中的值。将代码表中的代码转换为字形的打印机。如果打印机不理解给定语言的代码表,则将无法生成要打印的字形。 (我的猜测是,SDK使用Java Charset进行Unicode到代码表的编码,问号是Charset所说的“没有映射”的方式。 / p>

另一种可能性是使用自己的Unicode字符串进行位图渲染,并使用addImage打印图像。