如何将变量传递到.prn文件以在Java中的热敏打印机上打印

时间:2018-08-22 07:37:04

标签: java barcode

我的要求

我想为实验室管理系统打印条形码标签以及一些患者的详细信息。为此,我创建了一个.prn文件以使用ZEBRA TLP 2844打印机进行打印。 按照图片BARCODE CODE LABEL DESIGN PRINT标签设计PATNAME,AGESEX,WARD是动态值 如何从数据库中获取这些详细信息并使用Java中的prn文件打印它们?

1 个答案:

答案 0 :(得分:0)

我们只需创建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);

其中“模板”是将您的PRN文件读入字符串,其中包含大括号中的变量。 您可以实现函数lookupVariable(String)来查找给定变量的实际值(在Map中,数据库中的任何位置查找它)。最后,您可以使用ByteArrayOutputStream和OutputStreamWriter将所有内容转换为具有正确编码的字节,以将其发送到打印机。

您还可以使用诸如Velocity Templates之类的模板引擎。