多语言收据无法在Android中使用Star Micronics打印机进行打印

时间:2019-02-05 13:19:26

标签: android printing

我尝试使用所有CodePageType和CharSet来打印阿拉伯语,日语等语言,但是它在收据上打印一些符号。对于英语,它可以按要求的格式正常工作。我还遵循了官方pdf和诸如appendInternationalCode()之类的方法,但是没有用。 enter image description here

Star Micronics(SM230I)打印机

StarPRNTSDK Android SDK

Android API 26至29

尝试过UTF-8,Shift-JIS,JIS,ASCII等

尝试使用CodePageType

    //Some method calling......  

  Charset encoding;
  StringBuffer stringBuffer=new StringBuffer();
  ArrayList<CodePageType> codeList=new ArrayList<>();
  codeList.add(CodePageType.CP437);
  codeList.add(CodePageType.CP737);
  codeList.add(CodePageType.CP772);
  codeList.add(CodePageType.CP774);
  codeList.add(CodePageType.CP851);
  codeList.add(CodePageType.CP852);
  codeList.add(CodePageType.CP855);
  codeList.add(CodePageType.CP857);
  codeList.add(CodePageType.CP858);
  codeList.add(CodePageType.CP860);
  codeList.add(CodePageType.CP861);
  codeList.add(CodePageType.CP862);
  codeList.add(CodePageType.CP863);
  codeList.add(CodePageType.CP864);
  codeList.add(CodePageType.CP865);
  codeList.add(CodePageType.CP866);
  codeList.add(CodePageType.CP869);
  codeList.add(CodePageType.CP874);
  codeList.add(CodePageType.CP928);
  codeList.add(CodePageType.CP932);
  codeList.add(CodePageType.CP998);
  codeList.add(CodePageType.CP999);
  codeList.add(CodePageType.CP1001);
  codeList.add(CodePageType.CP1250);
  codeList.add(CodePageType.CP1251);
  codeList.add(CodePageType.CP1252);
  codeList.add(CodePageType.CP2001);
  codeList.add(CodePageType.CP3001);
  codeList.add(CodePageType.CP3002);
  codeList.add(CodePageType.CP3011);
  codeList.add(CodePageType.CP3012);
  codeList.add(CodePageType.CP3021);
  codeList.add(CodePageType.CP3041);
  codeList.add(CodePageType.CP3840);
  codeList.add(CodePageType.CP3841);
  codeList.add(CodePageType.CP3843);
  codeList.add(CodePageType.CP3844);
  codeList.add(CodePageType.CP3845);
  codeList.add(CodePageType.CP3846);
  codeList.add(CodePageType.CP3847);
  codeList.add(CodePageType.CP3848);
  codeList.add(CodePageType.UTF8);

  //encoding = Charset.forName("JIS");
  encoding=Charset.forName("Shift-JIS");
  //encoding = Charset.forName("UTF-8");
  //encoding = Charset.forName("ASCII");

  for(CodePageType pageType:codeList)
  {
     builder.appendCodePage(pageType);
     stringBuffer.append("عنوان"+" = "+encoding+" = "+pageType);
     stringBuffer.append("\n");
  }
  builder.append(stringBuffer.toString().getBytes(encoding));

//print receipt ....

我需要使用阿拉伯语,日语,中文,荷兰语等多种语言进行打印,因为它现在仅适用于英语和所有其他打印符号。TIA

1 个答案:

答案 0 :(得分:2)

IDisplayCommandBuilder builder1 = StarIoExt.createDisplayCommandBuilder(StarIoExt.DisplayModel.SCD222);
builder1.appendCodePage(IDisplayCommandBuilder.CodePageType.Japanese);
builder1.append("eewrdew こんにちは".getBytes(Charset.forName("Shift-JIS")));
builder1.appendCodePage(IDisplayCommandBuilder.CodePageType.Japanese);
builder1.append("eewrdew こんにちは".getBytes(Charset.forName("JIS")));
builder1.getPassThroughCommands();

我什至尝试过,但是直到现在都没有找到解决方案。