Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Zebra 2824打印机正在将ZPL命令打印为文本_Java_Swing_Zebra Printers - Fatal编程技术网

Java Zebra 2824打印机正在将ZPL命令打印为文本

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

我正在编写一个JavaSwing应用程序,它可以打印标签来标记产品。 打印机是Zebra 2824 Plus,我通过串口发送ZPL2命令来打印我想要的标签。但是,我发送到打印机的命令是以文本形式打印的

这是连接到打印机并发送待打印标签的代码

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