我的需求
我想为实验室管理系统打印条形码标签和一些患者的详细信息。为此,我创建了一个.prn文件,使用ZEBRA TLP2844打印机进行打印。根据图像BARCODE CODE LABEL DESIGN PRINT标签设计PATNAME,AGESEX,WARD都是动态值,如何在java中使用prn文件从数据库中获取这些详细信息并打印出来?
发布于 2018-08-22 16:41:50
我们只需创建PRN文件并添加用大括号括起来的“变量”:{myCode}。
在打印时,我们加载文件,做一个简单的正则表达式匹配,然后我们可以找到所有变量,然后填充数据,然后通过网络将数据发送到打印机,例如:
Pattern p = Pattern.compile("\\{.*?\\}");
Matcher m = p.matcher(template);
StringBuffer result = new StringBuffer();
while(m.find()) {
String key = template.substring(m.start() + 1, m.end() - 1);
String replacement = lookupVariable(key);
m.appendReplacement(result, Matcher.quoteReplacement(replacement));
}
m.appendTail(result);其中'template‘是读取到字符串中的PRN文件,其中包含花括号中的变量。函数lookupVariable(String)是用来查找给定变量的实际值的函数(在映射中查找,在数据库中查找,无论在哪里)。最后,您可以使用ByteArrayOutputStream和OutputStreamWriter将所有内容转换为具有正确编码的字节,以便将其发送到打印机。
您还可以使用像Velocity模板这样的模板引擎。
https://stackoverflow.com/questions/51961923
复制相似问题