| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package com.mes.print.impl;
- import javax.print.Doc;
- import javax.print.DocFlavor;
- import javax.print.DocPrintJob;
- import javax.print.PrintService;
- import javax.print.SimpleDoc;
- import com.mes.print.PrinterException;
- import com.mes.print.config.PrinterConfig;
- import com.mes.print.model.FlowCardData;
- import com.mes.print.model.LabelData;
- import com.mes.print.template.LabelTspl;
- import com.mes.print.util.PrinterUtil;
- /**
- * TSC TTP-244 Pro 及同类热敏标签机:走 TSPL 原始字节流
- * 需要在 Windows 装 TSC 官方驱动,Java 通过驱动 pass-through 到打印机
- */
- public class TscPrinter implements PrinterImpl {
- @Override
- public void printFlowCard(FlowCardData data) {
- throw new PrinterException("TSC 打印机不支持流转卡打印,请配置 HP 打印机");
- }
- @Override
- public void printLabel(LabelData data) {
- if (data == null) throw new PrinterException("标签数据为空");
- String name = PrinterConfig.get("printer.name");
- PrintService svc = PrinterUtil.find(name);
- byte[] tspl = LabelTspl.build(data);
- try {
- DocPrintJob job = svc.createPrintJob();
- Doc doc = new SimpleDoc(tspl, DocFlavor.BYTE_ARRAY.AUTOSENSE, null);
- job.print(doc, null);
- } catch (PrinterException e) {
- throw e;
- } catch (Exception e) {
- throw new PrinterException("标签打印失败: " + e.getMessage(), e);
- }
- }
- }
|