Java发送ZPL指令进行打印
跟物流UPS和FedEx接口集成后发现接口物流单返回的是Base64加密的ZPL指令,因为当时不知道如何使用ABAP发送ZPL指令打印,所以就研究了一下Java
一、使用java.util.Base64进行解码
1、解码代码:
//Base64编码的ZPL指令 String label = "Cl5YQQ0KXkxSTg0KXk1OWQ0KXk1GTixODQpeTEgxMCwxMg0KXk1DWQ0KXlBPSQ0KXlBXODEyDQpeQ0kyNw0KXkZPMTUsN15BME4sMjAsMjReRlZIVU5USU5HVE9OIEJSQVNTXkZTDQpeRk8xNSwyN15BME4sMjAsMjReRlY3MTQzNzMyNzg4XkZTDQpeRk8xNSw0N15BME4sMjAsMjReRlYxMTEwMCBEQU5BIENJUkNMRV5GUw0KXkZPMTUsNjdeQTBOLDIwLDI0XkZWQ1lQUkVTUyAgQ0EgOTA2MzBeRlMNCl5GTzE1LDE0Ml5BME4sMjgsMzJeRlZTSElQIFRPOiBeRlMNCl5GTzYxLDE2Nl5BME4sMjgsMzJeRlYxLTk1NC0zNDUtNDY0Ml5GUw0KXkZPNjEsMTk0XkEwTiwyOCwzMl5GVkpFVFRBIFdISVJMUE9PTCBCQVRIUyBJTkMuXkZTDQpeRk82MSwyMjJeQTBOLDI4LDMyXkZWMTUyNTAgTi4gSEFZREVOIFJELiBTVUlURSAjMl5GUw0KXkZPNjEsMjUxXkEwTiw0NSw0NF5GVlNDT1RUU0RBTEUgIEFaICA4NTI2MF5GUw0KXkZPNDQ2LDleQTBOLDMwLDM0XkZWMyBMQlNeRlMNCl5GTzY4Myw5XkEwTiwyOCwzMl5GVjEgT0YgMV5GUw0KXkZPNTA4LDUxXkEwTiwyMiwyNl5GVkRXVDogMTEsNyw2XkZTDQpeRk81OTksMzY5XkEwTiw1Niw1OF5GVlNBTVBMRV5GUw0KXkZPMTA2LDQ1Ml5BME4sMzAsMzReRlZVUFNeRlMNCl5GTzY0LDQ4Ml5BME4sMzAsMzReRlZNQVhJQ09ERV5GUw0KXkZPMzgsNTEyXkEwTiwzMCwzNF5GVlBSSU5UUyBIRVJFXkZTDQpeRk8zMDAsNDM2XkEwTiwzMCwzNF5GVlVQUyBST1VUSU5HIENPREUgUFJJTlRTIEhFUkVeRlMNCl5GTzI3MCw1MjReQTBOLDI4LDMyXkZWVVBTIFBPU1RBTCBCQVJDT0RFIFBSSU5UUyBIRVJFXkZTDQpeRk8xMCwxMDMxXkEwTiwyMiwyNl5GVkJJTExJTkc6IFAvUF5GUw0KXkZPNDE2LDEwMzFeQTBOLDQ0LDM2XkZWU0FNUExFXkZTDQpeRk8xNzUsMTIwM15BME4sMTQsMjBeRlZYT0wgMjMuMDQuMzQgICAgICAgICAgTlY0NSAxOC4wQSAwNC8yMDIzKl5GUw0KXkZPOSw2NzBeQTBOLDU2LDU4XkZWVVBTIEdST1VORF5GUw0KXkZPOSw3MzFeQTBOLDI0LDI4XkZWVFJBQ0tJTkcgIzogVVBTIFRSQUNLSU5HIE5VTUJFUiBQUklOVFMgSEVSRV5GUw0KXkZPNTksODczXkEwTiwzMCwzNF5GVlVQUyBUUkFDS0lORyBOVU1CRVIgQkFSQ09ERSBQUklOVFMgSEVSRV5GUw0KXkZPNjg5LDY1MF5HQjEyNCwxMjUsMTI0LEIsMF5GUw0KXkZPMCw2NDheR0I4MTEsMTQsMTQsQiwwXkZTDQpeRk8wLDQyM15HQjgxMiw0LDQsQiwwXkZTDQpeRk8yNDQsNDIzXkdCNCwyMjUsNCxCLDBeRlMNCl5GTzAsNzc0XkdCODEyLDUsNSxCLDBeRlMNCl5GTzAsMTAxM15HQjgxMiwxNCwxNCxCLDBeRlMNCl5GTzYyOSwxMTQ3Cl5HRkEsMDA5NjksMDA5NjksMDE5LEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDAwMDAwMDAwDQpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjAwMDAwMDAwMA0KRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYwMDAwMDAwMDANCkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDAwMDAwMDAwDQpGMDAwMDAwMDAwMDAwMUY4MDAwMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMDAwMDFGODAwMDAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDAzRjgxRjgzRkMwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwM0Y4MUY4M0ZDMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZGRjlGOUZGRjAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDBGRkY5RjlGRkYwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwRkZGRkZGRkZGQzAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZGRkZGRkZGRkMwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDBGMDdGRkZGMEZDMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwRjA3RkZGRjBGQzAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZDMUZGRkMzRjAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDBGQzFGRkZDM0YwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwRkZGRkZGRkZGMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZGRkZGRkZGRjAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDAzRkZGRkZGRkMwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwM0ZGRkZGRkZDMDAwMDAwMDAwRjAwMDAwMDAwMA0KRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYwMDAwMDAwMDANCkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDAwMDAwMDAwDQpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjAwMDAwMDAwMA0KRjAwMDAwMDAwMDAxRkZGRkYwMDAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDAwMUZGRkZGMDAwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwMDNGRkY5RkMwMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMDAzRkZGOUZDMDAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDAzRkUxRjg3RkMwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwM0ZFMUY4N0ZDMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZGODFGODNGRjAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDBGRjgxRjgzRkYwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwRkUwMUY4MDNGMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZFMDFGODAzRjAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDBGMDAxRjgwMEYwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwRjAwMUY4MDBGMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMDAwMDFGODAwMDAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDAwMDAxRjgwMDAwMDAwMDAwMDBGMEZGREMxQzAwDQpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjBGRkRDMUMwMA0KRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYwMEMxRTNDMDANCkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDBDMUUzQzAwDQpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjAwQzFBMkMwMA0KRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYwMEMxQjZDMDANCkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDBDMUI2QzAwDQowMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzFCNkMwMA0KMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxOUNDMDANCjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMTlDQzAwDQowMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzE5Q0MwMA0KMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxODhDMDANCjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwDQowMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA0KMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDANCl5ETg0KXlhaDQo="; //Base64解码成字节 byte[] decodedBytes = Base64.getDecoder().decode(label); //Java字节转String String zplCode = new String(decodedBytes); //控制台打印 System.out.println(zplCode);
2、解码后的得到的ZPL指令:
3、把ZPL指令转成图片进行预览(可以把ZPL指令贴到网站http://labelary.com/viewer.html进行标签的预览)
二、发送ZPL指令给斑马打印机打印
1、maven引入字符串工具包
<!--Hutool--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.2.3</version> </dependency>
2、使用工具类去掉ZPL指令的换行符
//去掉换行符号 zplCode = StrUtil.removeAllLineBreaks(zplCode);
3、maven引入zebra的api包(https://mvnrepository.com/artifact/com.zebra/zsdk-api)
<!-- Zebar --> <dependency> <groupId>com.zebra</groupId> <artifactId>zsdk-api</artifactId> <version>2.14.5198</version> </dependency>
4、打印机设置
ps:一般会用2种方式打印,一个是本机USB方式打印,另一个是远程IP方式打印。但是在实际应用中,需要将USB打印机接打印共享服务器,做一些配置后实现网络打印,也就是远程IP方式打印
5、使用zebra的api进行打印(有关如何使用zebra api,请访问https://techdocs.zebra.com/link-os/2-14/pc/)
import java.util.Base64; import com.zebra.sdk.comm.Connection; import com.zebra.sdk.comm.ConnectionException; import com.zebra.sdk.comm.TcpConnection; import com.zebra.sdk.printer.discovery.DiscoveredPrinterDriver; import com.zebra.sdk.printer.discovery.UsbDiscoverer; import cn.hutool.core.util.StrUtil; /** * @author Amell * 2022年5月8日 上午8:08:12 * */ public class ZplPrint { public static void main(String[] args) throws Exception { //Base64编码的ZPL指令 String label = "Cl5YQQ0KXkxSTg0KXk1OWQ0KXk1GTixODQpeTEgxMCwxMg0KXk1DWQ0KXlBPSQ0KXlBXODEyDQpeQ0kyNw0KXkZPMTUsN15BME4sMjAsMjReRlZIVU5USU5HVE9OIEJSQVNTXkZTDQpeRk8xNSwyN15BME4sMjAsMjReRlY3MTQzNzMyNzg4XkZTDQpeRk8xNSw0N15BME4sMjAsMjReRlYxMTEwMCBEQU5BIENJUkNMRV5GUw0KXkZPMTUsNjdeQTBOLDIwLDI0XkZWQ1lQUkVTUyAgQ0EgOTA2MzBeRlMNCl5GTzE1LDE0Ml5BME4sMjgsMzJeRlZTSElQIFRPOiBeRlMNCl5GTzYxLDE2Nl5BME4sMjgsMzJeRlYxLTk1NC0zNDUtNDY0Ml5GUw0KXkZPNjEsMTk0XkEwTiwyOCwzMl5GVkpFVFRBIFdISVJMUE9PTCBCQVRIUyBJTkMuXkZTDQpeRk82MSwyMjJeQTBOLDI4LDMyXkZWMTUyNTAgTi4gSEFZREVOIFJELiBTVUlURSAjMl5GUw0KXkZPNjEsMjUxXkEwTiw0NSw0NF5GVlNDT1RUU0RBTEUgIEFaICA4NTI2MF5GUw0KXkZPNDQ2LDleQTBOLDMwLDM0XkZWMyBMQlNeRlMNCl5GTzY4Myw5XkEwTiwyOCwzMl5GVjEgT0YgMV5GUw0KXkZPNTA4LDUxXkEwTiwyMiwyNl5GVkRXVDogMTEsNyw2XkZTDQpeRk81OTksMzY5XkEwTiw1Niw1OF5GVlNBTVBMRV5GUw0KXkZPMTA2LDQ1Ml5BME4sMzAsMzReRlZVUFNeRlMNCl5GTzY0LDQ4Ml5BME4sMzAsMzReRlZNQVhJQ09ERV5GUw0KXkZPMzgsNTEyXkEwTiwzMCwzNF5GVlBSSU5UUyBIRVJFXkZTDQpeRk8zMDAsNDM2XkEwTiwzMCwzNF5GVlVQUyBST1VUSU5HIENPREUgUFJJTlRTIEhFUkVeRlMNCl5GTzI3MCw1MjReQTBOLDI4LDMyXkZWVVBTIFBPU1RBTCBCQVJDT0RFIFBSSU5UUyBIRVJFXkZTDQpeRk8xMCwxMDMxXkEwTiwyMiwyNl5GVkJJTExJTkc6IFAvUF5GUw0KXkZPNDE2LDEwMzFeQTBOLDQ0LDM2XkZWU0FNUExFXkZTDQpeRk8xNzUsMTIwM15BME4sMTQsMjBeRlZYT0wgMjMuMDQuMzQgICAgICAgICAgTlY0NSAxOC4wQSAwNC8yMDIzKl5GUw0KXkZPOSw2NzBeQTBOLDU2LDU4XkZWVVBTIEdST1VORF5GUw0KXkZPOSw3MzFeQTBOLDI0LDI4XkZWVFJBQ0tJTkcgIzogVVBTIFRSQUNLSU5HIE5VTUJFUiBQUklOVFMgSEVSRV5GUw0KXkZPNTksODczXkEwTiwzMCwzNF5GVlVQUyBUUkFDS0lORyBOVU1CRVIgQkFSQ09ERSBQUklOVFMgSEVSRV5GUw0KXkZPNjg5LDY1MF5HQjEyNCwxMjUsMTI0LEIsMF5GUw0KXkZPMCw2NDheR0I4MTEsMTQsMTQsQiwwXkZTDQpeRk8wLDQyM15HQjgxMiw0LDQsQiwwXkZTDQpeRk8yNDQsNDIzXkdCNCwyMjUsNCxCLDBeRlMNCl5GTzAsNzc0XkdCODEyLDUsNSxCLDBeRlMNCl5GTzAsMTAxM15HQjgxMiwxNCwxNCxCLDBeRlMNCl5GTzYyOSwxMTQ3Cl5HRkEsMDA5NjksMDA5NjksMDE5LEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDAwMDAwMDAwDQpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjAwMDAwMDAwMA0KRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYwMDAwMDAwMDANCkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDAwMDAwMDAwDQpGMDAwMDAwMDAwMDAwMUY4MDAwMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMDAwMDFGODAwMDAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDAzRjgxRjgzRkMwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwM0Y4MUY4M0ZDMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZGRjlGOUZGRjAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDBGRkY5RjlGRkYwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwRkZGRkZGRkZGQzAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZGRkZGRkZGRkMwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDBGMDdGRkZGMEZDMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwRjA3RkZGRjBGQzAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZDMUZGRkMzRjAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDBGQzFGRkZDM0YwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwRkZGRkZGRkZGMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZGRkZGRkZGRjAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDAzRkZGRkZGRkMwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwM0ZGRkZGRkZDMDAwMDAwMDAwRjAwMDAwMDAwMA0KRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYwMDAwMDAwMDANCkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDAwMDAwMDAwDQpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjAwMDAwMDAwMA0KRjAwMDAwMDAwMDAxRkZGRkYwMDAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDAwMUZGRkZGMDAwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwMDNGRkY5RkMwMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMDAzRkZGOUZDMDAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDAzRkUxRjg3RkMwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwM0ZFMUY4N0ZDMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZGODFGODNGRjAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDBGRjgxRjgzRkYwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwRkUwMUY4MDNGMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMEZFMDFGODAzRjAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDBGMDAxRjgwMEYwMDAwMDAwMDBGMDAwMDAwMDAwDQpGMDAwMDAwMDAwRjAwMUY4MDBGMDAwMDAwMDAwRjAwMDAwMDAwMA0KRjAwMDAwMDAwMDAwMDFGODAwMDAwMDAwMDAwMEYwMDAwMDAwMDANCkYwMDAwMDAwMDAwMDAxRjgwMDAwMDAwMDAwMDBGMEZGREMxQzAwDQpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjBGRkRDMUMwMA0KRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYwMEMxRTNDMDANCkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDBDMUUzQzAwDQpGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjAwQzFBMkMwMA0KRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYwMEMxQjZDMDANCkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDBDMUI2QzAwDQowMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzFCNkMwMA0KMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxOUNDMDANCjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMTlDQzAwDQowMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzE5Q0MwMA0KMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxODhDMDANCjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwDQowMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA0KMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDANCl5ETg0KXlhaDQo="; //Base64解码成字节 byte[] decodedBytes = Base64.getDecoder().decode(label); //Java字节转String String zplCode = new String(decodedBytes); //去掉换行符号 zplCode = StrUtil.removeAllLineBreaks(zplCode); //打印 new ZplPrint().sendZplToPrint("TCP/IP",zplCode); } private void sendZplToPrint(String printType,String zplCode) throws ConnectionException { Connection thePrinterConn = null; if(printType.equals("TCP/IP")) { thePrinterConn = new TcpConnection("192.168.xx.xx", 9100); }else if (printType.equals("USB")){ DiscoveredPrinterDriver[] printerConnections = UsbDiscoverer.getZebraDriverPrinters(); //System.out.println("printerConnections 共有:" + printerConnections.length + "个打印机"); /*for (DiscoveredPrinterDriver driver : printerConnections) { System.out.println("设备有:" + driver.printerName); System.out.println("端口:" + Arrays.toString(driver.portNames)); }*/ //默认获取第一个打印机 thePrinterConn = printerConnections[0].getConnection(); } try { // Open the connection - physical connection is established here. thePrinterConn.open(); // Send the data to printer as a byte array. thePrinterConn.write(zplCode.getBytes()); } catch (ConnectionException e) { // Handle communications error here. e.printStackTrace(); } finally { // Close the connection to release resources. thePrinterConn.close(); } } }
落霞与孤鹜齐飞,秋水共长天一色