我有一台Intermec PC43t条码打印机,我无法打印希腊字符。当我发送希腊字符进行打印时,我有字符所在的点。当我用英语打印时,我得到了正确的结果。
我将ZPL2命令发送到Intermec打印机(通过Zsim)。 以下是命令。
^ XA
^ BY3
^ FT430,80
^ BCI,80,Y,N,N-
^ ^ FD00001978 FS
^ ^ FT360,320 ADI,25,14 ^ ^ FD123457 FS
^ ^ FT140,320 ADI,25,14 ^ ^ FD1245 FS
^ ^ FT300,270 ADI,40,20 ^ ^ FD8794465 FS
^ FT300,215 ^ ADI,40,20 ^ FD99999 / 99999 ^ FS
^ FT430,175 ^ ADI,25,15 ^ FD40125 - Ελληνικά - 希腊语^ FS
^ XZ
有人知道解决方案吗?
谢谢
答案 0 :(得分:1)
您可以尝试使用CIX参数(更改国际字体/编码),其中X是编码数。
可能是Zebra Code Page 1253 - 现代希腊字符集?
CI34 =代码页1253
使用示例:
^FB559,,,C,^FT30,106^A@N,23,31,TT0003M_^FH^CI17^F8^FD_text_^FS^CI0
答案 1 :(得分:1)
此解决方案不是Unicode,但如果您的固件支持(x.14.x
及更高版本符合the documentation),您可以强制使用希腊语windows-1253
代码页并使用{{3}添加}。
注意:尽管有名称,
windows-1253
不需要Windows操作系统与Zebra打印机一起使用。
// ^XA = Start of label
// ^XZ = End of label
// ^CF = Font size
// ^FO = X,Y position on label
// ^CI34 = Code Page 1253 - Zebra x.14.x fimware or higher only
// ^FH = Allow "_FF" style escaped hex characters
^XA
^CF0,60
^CI34^FO50,50^FH^FD - Theta: _C8 ^FS
^CI34^FO50,100^FH^FD - Lambda: _CB ^FS
^XZ
这种方法的缺点是程序员必须要么:
cp1253
等效字符,或者...... cp1253
等效字符。 hex version of the 1253 code table for each character。警告,因为它们可能在终端或输出流中显示为奇怪的符号。因此,如果打印机直接支持Unicode数据,那么这是理想的解决方案,但如果没有,cp1253
可能是一个可行的选择。
答案 2 :(得分:0)
按照trsef的回答。这是一个对我有用的Java类。可能有人认为它有用并节省一些时间:
public class GreekToHexZPL {
public String convertText(String newText) {
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < newText.length(); i++) {
switch (newText.charAt(i)) {
case 'Α':
sBuilder.append("_C1");
break;
case 'Β':
sBuilder.append("_C2");
break;
case 'Γ':
sBuilder.append("_C3");
break;
case 'Δ':
sBuilder.append("_C4");
break;
case 'Ε':
sBuilder.append("_C5");
break;
case 'Ζ':
sBuilder.append("_C6");
break;
case 'Η':
sBuilder.append("_C7");
break;
case 'Θ':
sBuilder.append("_C8");
break;
case 'Ι':
sBuilder.append("_C9");
break;
case 'Κ':
sBuilder.append("_CA");
break;
case 'Λ':
sBuilder.append("_CB");
break;
case 'Μ':
sBuilder.append("_CC");
break;
case 'Ν':
sBuilder.append("_CD");
break;
case 'Ξ':
sBuilder.append("_CE");
break;
case 'Ο':
sBuilder.append("_CF");
break;
case 'Π':
sBuilder.append("_D0");
break;
case 'Ρ':
sBuilder.append("_D1");
break;
case 'Σ':
sBuilder.append("_D3");
break;
case 'Τ':
sBuilder.append("_D4");
break;
case 'Υ':
sBuilder.append("_D5");
break;
case 'Φ':
sBuilder.append("_D6");
break;
case 'Χ':
sBuilder.append("_D7");
break;
case 'Ψ':
sBuilder.append("_D8");
break;
case 'Ω':
sBuilder.append("_D9");
break;
case 'Ϊ':
sBuilder.append("_DA");
break;
case 'Ϋ':
sBuilder.append("_DB");
break;
case 'ά':
sBuilder.append("_DC");
break;
case 'έ':
sBuilder.append("_DD");
break;
case 'ή':
sBuilder.append("_DE");
break;
case 'ί':
sBuilder.append("_DF");
break;
case 'ΰ':
sBuilder.append("_E0");
break;
case 'α':
sBuilder.append("_E1");
break;
case 'β':
sBuilder.append("_E2");
break;
case 'γ':
sBuilder.append("_E3");
break;
case 'δ':
sBuilder.append("_E4");
break;
case 'ε':
sBuilder.append("_E5");
break;
case 'ζ':
sBuilder.append("_E6");
break;
case 'η':
sBuilder.append("_E7");
break;
case 'θ':
sBuilder.append("_E8");
break;
case 'ι':
sBuilder.append("_E9");
break;
case 'κ':
sBuilder.append("_EA");
break;
case 'λ':
sBuilder.append("_EB");
break;
case 'μ':
sBuilder.append("_EC");
break;
case 'ν':
sBuilder.append("_ED");
break;
case 'ξ':
sBuilder.append("_EE");
break;
case 'ο':
sBuilder.append("_EF");
break;
case 'π':
sBuilder.append("_F0");
break;
case 'ρ':
sBuilder.append("_F1");
break;
case 'ς':
sBuilder.append("_F2");
break;
case 'σ':
sBuilder.append("_F3");
break;
case 'τ':
sBuilder.append("_F4");
break;
case 'υ':
sBuilder.append("_F5");
break;
case 'φ':
sBuilder.append("_F6");
break;
case 'χ':
sBuilder.append("_F7");
break;
case 'ψ':
sBuilder.append("_F8");
break;
case 'ω':
sBuilder.append("_F9");
break;
case 'ϊ':
sBuilder.append("_FA");
break;
case 'ϋ':
sBuilder.append("_FB");
break;
case 'ό':
sBuilder.append("_FC");
break;
case 'ύ':
sBuilder.append("_FD");
break;
case 'ώ':
sBuilder.append("_FE");
break;
case 'Ά':
sBuilder.append("_Α2");
break;
case 'Έ':
sBuilder.append("_Β8");
break;
case 'Ή':
sBuilder.append("_Β9");
break;
case 'Ί':
sBuilder.append("_ΒA");
break;
case 'Ό':
sBuilder.append("_ΒC");
break;
case 'Ύ':
sBuilder.append("_ΒE");
break;
case 'Ώ':
sBuilder.append("_ΒF");
break;
case 'A':
sBuilder.append("_41");
break;
case 'a':
sBuilder.append("_61");
break;
case 'B':
sBuilder.append("_42");
break;
case 'b':
sBuilder.append("_62");
break;
case 'C':
sBuilder.append("_43");
break;
case 'c':
sBuilder.append("_63");
break;
case 'D':
sBuilder.append("_44");
break;
case 'd':
sBuilder.append("_64");
break;
case 'E':
sBuilder.append("_45");
break;
case 'e':
sBuilder.append("_65");
break;
case 'F':
sBuilder.append("_46");
break;
case 'f':
sBuilder.append("_66");
break;
case 'G':
sBuilder.append("_47");
break;
case 'g':
sBuilder.append("_67");
break;
case 'H':
sBuilder.append("_48");
break;
case 'h':
sBuilder.append("_68");
break;
case 'I':
sBuilder.append("_49");
break;
case 'i':
sBuilder.append("_69");
break;
case 'J':
sBuilder.append("_4A");
break;
case 'j':
sBuilder.append("_6A");
break;
case 'K':
sBuilder.append("_4B");
break;
case 'k':
sBuilder.append("_6B");
break;
case 'L':
sBuilder.append("_4C");
break;
case 'l':
sBuilder.append("_6C");
break;
case 'M':
sBuilder.append("_4D");
break;
case 'm':
sBuilder.append("_6D");
break;
case 'N':
sBuilder.append("_4E");
break;
case 'n':
sBuilder.append("_6E");
break;
case 'O':
sBuilder.append("_4F");
break;
case 'o':
sBuilder.append("_6F");
break;
case 'P':
sBuilder.append("_50");
break;
case 'p':
sBuilder.append("_70");
break;
case 'R':
sBuilder.append("_52");
break;
case 'r':
sBuilder.append("_72");
break;
case 'S':
sBuilder.append("_53");
break;
case 's':
sBuilder.append("_73");
break;
case 'T':
sBuilder.append("_54");
break;
case 't':
sBuilder.append("_74");
break;
case 'U':
sBuilder.append("_55");
break;
case 'u':
sBuilder.append("_75");
break;
case 'V':
sBuilder.append("_56");
break;
case 'v':
sBuilder.append("_76");
break;
case 'Y':
sBuilder.append("_59");
break;
case 'y':
sBuilder.append("_79");
break;
case 'Z':
sBuilder.append("_5A");
break;
case 'z':
sBuilder.append("_7A");
break;
case ' ':
sBuilder.append(" ");
break;
default:
sBuilder.append(newText.charAt(i));
break;
}
}
return sBuilder.toString();
}
}