java 斑马_java调用斑马GK888t打印机(ZPL指令)

本文介绍了在Java中使用ZPL指令控制斑马GK888t打印机的方法,解决系统服务启动时打印机驱动设置不生效的问题。通过ZPL语言,可以设置打印浓度等参数,并提供了一个Java示例来发送ZPL指令,实现图片打印。
摘要由CSDN通过智能技术生成

在项目中使用斑马打印机遇到了如下问题:

在实际打印信息前,需要修改打印机驱动设置,主要是设置打印颜色深度,默认值一般会打印的比较浅。通常情况下,在设置的颜色深度后,打印机能够很好的工作。但是如果我将程序注册为windows系统服务,以自启动的方式运行程序后,对于打印机驱动的设置将不会生效。而直接使用控制台启动程序,却是正常的。经过分析之后,怀疑可能是由于,系统服务的启动方式和直接控制台启动的方式是有区别的,两种方式程序的登录用户是不同的,系统服务的登录用户是SYSTEM(非administration)用户,控制台启动方式就是普通的USER用户。而打印机的驱动设置,貌似每个用户之间是相互独立的,所以修改了USER用户的设置,SYSTEM用户的设置仍然是默认值,所以打印机驱动就不会生效。

这个问题的一个解决方案,就是使用ZPL指令,直接控制打印机。ZPL是打印机专用的一种编程语言,具体可以参考《ZPL语言中文手册》。通过使用ZPL指令,可以打印问题,条码,图片,也可以修改各种打印参数,包括修改打印浓度参数。所以通过ZPL的方式可以忽略系统打印机的驱动设置,也就能够随意修改颜色深度设置了。

但是如何调用ZPL呢?

一种方式可以通过cmd命令行的方式向打印机发送ZPL指令文件,具体可参考连接:http://www.chongshang.com.cn/news/view.asp?id=334。

另一种是通过JAVA调用打印机,在发送ZPL指令。这里我参考了github上的代码,详见:https://github.com/w3blogfr/zebra-zpl。从这个代码中就知道如何通过JAVA向打印机发送ZPL指令了。

github上的这个demo程序,用于打印一般的文字,条码是挺不错的,但是我的项目中需要打印一张位图图片,这个demo中并没有相关的示例。所以我查了下ZPL语言的手册,发现其中的~DG命令能够满足我的需求,经过研究之后,终于能够使用ZPL打印图片了。以下是打印部分的参考代码:

import java.awt.image.BufferedImage;

import java.awt.print.PrinterException;

import java.io.File;

import javax.i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值