У меня проблема с принтером Zebra RW220, не печатающим сербские латинские символы, например čćžšđ. Я разработал приложение для Android, которое использует принтер. Печатная часть основана на Zebra SDK. Вот часть кода:Zebra printer сербские латинские символы
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, который я преобразовал с помощью Zebra утилит для СПЛ, для использования с принтером. Я также добавил символы в шрифт, но он не печатает их. В этом примере он просто печатает ABC. И с системными шрифтами он печатает некоторые странные символы. Я также попытался добавить строку «ENCODING UTF-8» до «T ARIAL9PT.CPF 0 60 10 ABCČĆŽŠĐ \ r \ n», но он ничего не делает, то же самое с системными шрифтами. Как я могу напечатать сербские латинские символы? Благодарю.
EDIT: ISO-8859-2 печатает Č и Ć, но не Ž.
Попробуйте использовать последние 'getBytes()': 'cpclConfigLabel.getBytes (« ISO-8859-5 »);« Или «UTF-8». Попробуйте '\ u010d' вместо' č', чтобы исключить проблемы с исходной кодировкой java. –
Не помогло ... «ISO-8859-5» не печатает čćžšđ, даже как \ u010d, а UTF-8 бросает странные символы. –