先上图

再上代码
package com.framework.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.standard.PrinterName;
import com.framework.entity.SysPlanBetEntity;
/**
* 高线挂牌机器人打印使用
* 2022.3.3
* @author lrd
*
*/
public class ZplPrinterRobot {
private String printerURI = null;//打印机完整路径
private PrintService printService = null;//打印机服务
private byte[] dotFont;
private String begin = "^XA"; //标签格式以^XA开始
private String end = "^XZ"; //标签格式以^XZ结束
private String content = "";
/**
* 中文字符、英文字符(包含数字)混合 转90度
*/
public void setDpi() {
//content += "^JMA";
content +="^LH0,0";
}
public static void main(String[] args) {
//加载字体
File file = new File("D://ts24.lib");
if(file.exists()){
FileInputStream fis;
try {
fis = new FileInputStream(file);
byte[] dotFont = new byte[fis.available()];
fis.read(dotFont);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}else{
System.out.println("D://ts24.lib文件不存在");
throw new RRException("D://ts24.lib文件不存在");
}
//初始化打印机
PrintService[] services = PrintServiceLookup.lookupPrintServices(null,null);
System.out.println(Arrays.toString(services));
String printName = "ZT510-300dpi ZPL";
ZplPrinterRobot p = new ZplPrinterRobot(printName);
//p.setDpi();
SysPlanBetEntity planBet = new SysPlanBetEntity();
planBet.setTargetName("钢筋混凝土用热轧带肋钢筋");
planBet.setMark("HRB400E");
planBet.setNorms("Φ10");
planBet.setMark("HRB400E");
planBet.setMatNo("123456789012");
planBet.setLicNo("XK05-001-00727");
planBet.setExeSta("GB/T1499.2-2018");
planBet.setTaskId("D1740001");
planBet.setMatPraWei(new BigDecimal(12300));
planBet.setClassCode("甲jia");
String targetName = planBet.getTargetName();
if(targetName.length()>6){
String targetName1=targetName.substring(0,6);
p.setTextR(targetName1, 120, 250, 35, 30);
String targetName2=targetName.substring(6);
p.setTextR(targetName2, 155, 250, 35, 30);
}else{
p.setTextR(planBet.getTargetName(), 130, 250, 40, 40); //产品名称:钢筋混凝土用热轧带肋钢筋(系统带出)
}
p.setTextR("HRB400E",215, 250, 40, 40); //牌 号:HRB400
p.setTextR(planBet.getNorms(), 300, 250, 40, 40); // 规 格:Φ8
p.setTextR("支数1211212122", 380, 250, 40, 40)