From f65443d8abeaedc9d102324565e8368e7c9d90c8 Mon Sep 17 00:00:00 2001 From: 郑永安 <zyazyz250@sina.com> Date: 星期一, 19 六月 2023 14:41:54 +0800 Subject: [PATCH] commit --- src/main/java/com/gk/firework/Domain/Vo/ZplUtil.java | 81 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 81 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gk/firework/Domain/Vo/ZplUtil.java b/src/main/java/com/gk/firework/Domain/Vo/ZplUtil.java new file mode 100644 index 0000000..cc40290 --- /dev/null +++ b/src/main/java/com/gk/firework/Domain/Vo/ZplUtil.java @@ -0,0 +1,81 @@ +package com.gk.firework.Domain.Vo; + +import java.io.File; +import java.io.FileInputStream; +import java.io.UnsupportedEncodingException; + +/** + * @author : jingjy + * @date : 2021/7/27 16:41 + * @Description: 用于ZPL把文字转换为图片,但是生成数据太大,废弃 + * @deprecated + */ +public class ZplUtil { + private byte[] dotFont; + private String sPrt = ""; + private String sPrtBuffer =""; + + public String getCharPicture(String str, int x, int y, int h, int w, int b){ + printChineseChar(str,x,y,h,w,b); + return sPrtBuffer+sPrt; + } + + public ZplUtil() throws Exception { + String path = "E:\\ts24.lib"; + File file = new File(path); + FileInputStream fis = new FileInputStream(file); + dotFont = new byte[fis.available()]; + fis.read(dotFont); + fis.close(); + } + + private void printChineseChar(String str, int x, int y, int h, int w, int b) { + byte[] ch = str2bytes(str); + for (int off = 0; off < ch.length;) { + if (((int) ch[off] & 0x00ff) >= 0xA0) { + int qcode = ch[off] & 0xff; + int wcode = ch[off + 1] & 0xff; + sPrtBuffer = sPrtBuffer + + String.format("^FO%d,%d^XG0000%01X%01X,%d,%d^FS", x, + y, qcode, wcode,b,b); + sPrt += String.format("~DG0000%02X%02X,00072,003,", qcode, + wcode); + qcode = (qcode + 128 - 32) & 0x00ff; + wcode = (wcode + 128 - 32) & 0x00ff; + int offset = (qcode - 16) * 94 * 72 + (wcode - 1) + * 72; + for (int j = 0; j < 72; j += 3) { + qcode = (int) dotFont[j + offset] & 0x00ff; + wcode = (int) dotFont[j + offset + 1] & 0x00ff; + int qcode1 = (int) dotFont[j + offset + 2] & 0x00ff; + sPrt += String.format("%02X%02X%02X", qcode, wcode, + qcode1); + } + x = x + 25*b; + off = off + 2; + } else if (((int) ch[off] & 0x00FF) < 0xA0) { + ; + printChar(String.format("%c",ch[off]), x, y, h, w); + x = x + 15; + off++; + } + } + } + + private void printChar(String str, int x, int y, int h, int w) { + sPrtBuffer +="^FO"+x+","+y+"^A0,"+h+","+w+"^FD"+str+"^FS"; + } + + private byte[] str2bytes(String s) { + if (null == s || "".equals(s)) { + return null; + } + byte[] abytes = null; + try { + abytes = s.getBytes("gb2312"); + } catch (UnsupportedEncodingException ex) { + + } + return abytes; + } +} -- Gitblit v1.9.2