2013-03-24 82 views
3

我有一個問題,斑馬打印機RW220不打印塞爾維亞拉丁字符,如čćžšđ。我開發了一個使用打印機的android應用程序。打印部分基於Zebra SDK。下面的代碼的一部分:斑馬打印機塞爾維亞拉丁字符

private byte[] getConfigLabel() { 
    PrinterLanguage printerLanguage = printer.getPrinterControlLanguage(); 
    byte[] configLabel = null; 
    if (printerLanguage == PrinterLanguage.ZPL) { 
     try { 
      configLabel = "^XA^FO17,16^GB379,371,8^FS^FT65,255^A0N,135,134^FDTEST^FS^XZ".getBytes("UTF-8"); 
     } catch (UnsupportedEncodingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } else if (printerLanguage == PrinterLanguage.CPCL) { 
     String cpclConfigLabel = "! 0 200 200 780 1\r\n" + "T ARIAL9PT.CPF 0 60 10 ABCČĆŽŠĐ\r\n" 
     + "PRINT\r\n"; 
     configLabel = cpclConfigLabel.getBytes(); 
    } 
    return configLabel; 
} 

使用的字體是Arial字體,其中我轉換使用斑馬實用程序CPF,用於與打印機使用。我還將字符添加到字體中,但不會打印它們。在這個例子中,它只是打印ABC。用系統字體打印一些奇怪的字符。我也嘗試在「T ARIAL9PT.CPF 0 60 10 ABCČĆŠĐ\ \ r \ n」之前添加「ENCODING UTF-8」行,但它與系統字體沒有任何相同之處。 如何讓它打印塞爾維亞拉丁字符?謝謝。

編輯: ISO-8859-2打印Č和Ć,但不是Ž。

+1

嘗試最後一個'getBytes()':'cpclConfigLabel.getBytes(「ISO-8859-5」);'或者「UTF-8」。嘗試使用'\ u010d'而不是''''來排除java源代碼的問題。 – 2013-03-24 18:07:03

+0

沒有幫助...「ISO-8859-5」不打印文件,即使是\ u102d,而UTF-8也會打印出奇怪的文字。 – 2013-03-24 18:54:36

回答

2

終於解決了,解決方法是使用「CP1250」編碼,也稱爲Windows-1250。