【发布时间】: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