【问题标题】:ESC commands to print barcode to a thermal printer?ESC命令将条形码打印到热敏打印机?
【发布时间】:2014-12-22 11:13:56
【问题描述】:

当您购买热敏收据打印机时,您还会获得一本手册,该手册告诉您应该使用哪个字节序列来执行什么操作(切割、完成作业、设置字体等)。但是,我对 Java 的了解不足以让我能够使用 ESC/POS 命令。

我有一台 Citizen CT S2000 热敏收据打印机。我已经设法使用字节序列进行切割和换行以及操作热敏打印机应该具有的字体。但是我不知道如何使用 ESC 命令生成和打印条形码。

如何做到这一点的手册是第 144 页上的here。这里提供了 BASIC 中的示例代码。

LPRINT CHR$(&H1D);"k"; CHR$(73); CHR$(10);
LPRINT "{BNo.{C"; CHR$(12); CHR$(34); CHR$(56);
LPRINT CHR$(&HA);
END

这是我打印条形码的尝试。

public static void barcode() throws Exception{
    byte[] b = {0x7b, 0x43, 0x12, 0x34}; 
    //This is the commands as I interpreted the to print out 12 and 34

    DocPrintJob job = PrintServiceLookup.lookupDefaultPrintService().createPrintJob();

    DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE; 
    /*This is how I send byte sequences. 
    if you got something better then don't hesitate yelling at me :D : ). */

    Doc doc = new SimpleDoc(b, flavor, null);

    job.print(doc, null);                   
}

然而,这根本不会产生任何东西,打印机根本不会做任何事情。

我真的找不到任何示例。

任何答案/cmets 将不胜感激。

【问题讨论】:

  • 也许你应该看看 JavaPOS:javapos.com/samplecode.html。您可能需要为它安装驱动程序(对于 Epson,有一个 JavaPOS ADK),但是一旦您开始使用它,它就是一个很好的库。
  • 谢谢,我一定会去看看。但是真的有必要安装驱动吗?我能够得到一些其他命令,例如 cut 命令。
  • 我不确定。我实现了类似的东西,但这是针对爱普生打印机的,如果不安装爱普生 JavaPOS 驱动程序,这将无法工作。
  • 好吧,因为我能够提示打印机执行其他命令,我似乎不太可能需要安装其他任何东西才能使用它。手头的问题似乎是 Java 中显示的 ESC 命令的正确语法是什么。
  • 我能够简单地将字符串发送到打印机,并在其中使用 unicode 字符来执行 Esc 命令。例如,我可以将"\u001b|fP" 用于剪纸命令。

标签: java arrays printing barcode thermal-printer


【解决方案1】:

试试下面的命令可以打印条码。

byte[] barCode = {0x1d,0x6b,0x07,0x6e,0x61,0x72};

Here 0x6e,0x61,0x72 are the charters "nar" which converted into barcode.

我相信它会起作用。如有任何疑问,请告诉我。

【讨论】:

  • 这个答案有意义吗?
  • 但是我不知道如何使用 ESC 命令生成和打印条形码。 @DilaGurung 如果您看到问题中提到的上述几行,然后尝试我给出的答案,您会自动意识到这是有道理的。 :)
猜你喜欢
  • 2019-08-15
  • 2011-06-19
  • 2014-06-27
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多