如何从zpl命令打印希腊字符

时间:2014-01-22 13:40:13

标签: unicode zpl barcode-printing zpl-ii intermec

我有一台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

有人知道解决方案吗?

谢谢

3 个答案:

答案 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

这种方法的缺点是程序员必须要么:

  1. 在准备ZPL消息之前,将每个希腊字符动态映射到cp1253等效字符,或者......
  2. 使用字符编码转换器在发送之前将UTF字符映射到cp1253等效字符。 hex version of the 1253 code table for each character。警告,因为它们可能在终端或输出流中显示为奇怪的符号。
  3. 因此,如果打印机直接支持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();
  }
}