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



当我尝试使用Android Java为爱普生收据打印机打印缅甸Unicode字体时,只显示问号。任何人都知道如何打印。

这是我的代码:

String method = ""; 
StringBuilder textData = new StringBuilder(); 
String mmText = "ဘြဲ႕ ဘယ္လိုရခဲ့ပါလိမ့္"; 
mmText = URLEncoder.encode(mmText, "US-ASCII");
textData.append(mmText + " 9.99 Rn"); 
textData.append("410 3 CUP BLK TEAPOT 9.99 Rn");
method = "addText"; 
method = "addCut"; 
mPrinter.addCut(Printer.CUT_FEED);

非常感谢

我不确定是否有任何解决方案。 你的代码没有多大意义,但给了我一些线索:

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

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

addTextLang显然是您应该如何选择与打印机交谈时使用的语言或编码(文档使用这两个术语! 显然,打印机的技术文档应该告诉您支持哪些语言。

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

另一种可能性是执行自己的Unicode字符串来呈现位图,并使用addImage打印图像。

最新更新