Java Zebra 2824打印机正在将ZPL命令打印为文本
我正在编写一个JavaSwing应用程序,它可以打印标签来标记产品。 打印机是Zebra 2824 Plus,我通过串口发送ZPL2命令来打印我想要的标签。但是,我发送到打印机的命令是以文本形式打印的 这是连接到打印机并发送待打印标签的代码Java Zebra 2824打印机正在将ZPL命令打印为文本,java,swing,zebra-printers,Java,Swing,Zebra Printers,我正在编写一个JavaSwing应用程序,它可以打印标签来标记产品。 打印机是Zebra 2824 Plus,我通过串口发送ZPL2命令来打印我想要的标签。但是,我发送到打印机的命令是以文本形式打印的 这是连接到打印机并发送待打印标签的代码 serialPort = (SerialPort) portId.open(app, 2000); outputStream = serialPort.getOutputStream(); dataOutputStream = new DataOutput
serialPort = (SerialPort) portId.open(app, 2000);
outputStream = serialPort.getOutputStream();
dataOutputStream = new DataOutputStream(outputStream);
String command = "^XA^FO30,30^A0N,30,30^FDqwerty^FS^FO30,70^A0N,30,30^FDqwerty^FS^XZ";
byte[] data;
data = command.getBytes(StandardCharsets.US_ASCII);
dataOutputStream.write(data);
dataOutputStream.flush();
dataOutputStream.close();
serialPort.close();
结果是
^XA^FO30,30^A0N,30,30^FDqwerty^FS^FO30,70^A0N,30,30^FDqwerty^FS^XZ
我在Windows上运行它,通过串行端口连接
您能告诉我我做错了什么吗?我对java不太了解,但您描述的症状似乎表明打印作业是通过windows驱动程序进行的,而不是直接到端口。windows可以写入zebra打印机
在VB中,我会从包含原始ZLP的临时文本文件执行filecopy命令,并将该文本文件复制到该端口。换句话说,我将ZPL字符串保存到一个文件中,然后将该文件复制到串行端口。我相信Java也可以做类似的事情。打印机可能处于行打印模式。在此模式下,ZPL命令和大多数其他命令不会被处理,而是直接打印到标签上。此模式可用于动态生成长度可变的收据 通过向打印机发送以下命令,可以将打印机恢复到ZPL模式: !!U1 setvar device.zpl [请注意,命令必须以新行字符结尾,\r\n在Java中] 来源:找到答案和解决方案 通过USB电缆将打印机连接到桌面。打开Zebra设置实用程序,选择打印机,然后点击打开与打印机的通信 输入以下任意命令,然后按Enter键插入回车,然后按顶部的“发送到打印机”按钮 ! U1 setvar device.ZPL ! U1 setvar设备。语言行\u打印 注意:启用ZPL语言支持时,必须使用~JC命令校准打印机。校准前,必须装入打印机介质并准备好馈送标签 在ZPL校准和保存参数命令后,使用通信窗口发送以下信息
~jc^xa^jus^xz
打印机将输入标签并校准至保存值的标签长度。打印机如何连接到打印机?电视连续剧USB?这是什么类型的打印机?你在哪个站台上跑步?您可能还受益于阅读本文:我正在windows上运行它,连接是通过串行端口进行的。也许您需要发送额外的命令以将打印机配置为正确的模式。也许你已经知道了,但是Zebra曾经有一个SDK,至少对于BB和Android是这样。你也许可以重用那些库中的一些类。谢谢,但还是没有。我会试试的!!谢谢我的打印机只是将命令打印为文本,即使我发送命令将其设置为ZPL!U1 setvar device.zpl