【问题标题】:how to pass variables to .prn file to print on thermal printer in java如何将变量传递给.prn文件以在java中的热敏打印机上打印
【发布时间】:2019-01-28 10:10:15
【问题描述】:

我的要求

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

【问题讨论】:

  • 到目前为止你尝试了什么?您如何创建 .prn 文件,在那里设置值有什么问题?
  • 我使用 ZebraDesigner 2 创建了 .prn 文件,但我不知道如何从数据库中设置动态值。如何通过单击我想生成打印的单个按钮动态设置值。跨度>
  • 嗯,这取决于你实际做了什么以及你的问题是什么。你不知道如何从数据库中读取数据吗?您不知道如何阅读和编辑 .prn 文件吗?您是否在寻找有关数据库问题的教程?您是否在寻找可以编写 .prn 文件的库或查看格式规范?如果它是一个简单的文本文件,您可以尝试进行简单的搜索并替换为从数据库中读取的数据。
  • 我的代码:public static void main(String args[]){ PrintService printer = PrintServiceLookup.lookupDefaultPrintService(); System.out.println(printer.getName());尝试 { /* String[] command = {"cmd.exe", "/C", "Start", "C:\\Users\\Santosh\\Desktop\\san.bat"};进程 p = Runtime.getRuntime().exec(command); */ Runtime.getRuntime().exec("cmd /c start /B C:\\Users\\Santosh\\Desktop\\san.bat"); } catch (IOException ex) { ex.printStackTrace(); } }
  • 您可能已经注意到在评论中发布代码有点尴尬。请edit您的问题并在那里添加格式正确的代码。顺便说一句,只是略过它似乎你只是调用了一些批处理文件。我们要么必须知道那个是这样做的,要么你为什么不使用你似乎获得的PrintService(以及如果它不在 JDK 中,那是什么库)。

标签: java barcode


【解决方案1】:

我们只需创建 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) 是您为查找给定变量的实际值而实现的(在地图、数据库中的任何地方查找)。最后,您可以使用 ByteArrayOutputStream 和 OutputStreamWriter 将所有内容转换为具有正确编码的字节以将其发送到打印机。

您还可以使用 Velocity Templates 等模板引擎。

【讨论】:

  • 如何使用 java 在 .prn 文件中查找变量和填充数据。我怎样才能实现它?
  • 这就是我在回答中写的字面意思。不过,如果这是您的要求,我不会为您写。
  • 你能否分享任何关于如何在 prn 文件中查找变量和填充数据的示例...实际上我正在搜索但我没有得到任何来源。
  • 这是我的 .PRN 文件 I8,A,001 Q203,024 q831 rN S4 D7 ZT JF OD R212,0 f100 N A112,96,2,1,1,2,N,"" A272,96,2,1,1,2,N,"" A378,95,2,1,1,2,N,"Date :" A270,124,2,1,1, 2,N,"" A377,123,2,1,1,2,N,"账单号 :" A281,155,2,1,1,2,N,"" A378,156 ,2,1,1,2,N,"年龄/性别 :" A308,187,2,1,1,2,N,"" A377,186,2,1,1,2,N, "名称 :" B356,66,2,1,2,6,34,B,"" P1
  • 你去。我添加了一些代码。就像我说的,这只是一个使用正则表达式的简单文本搜索和替换操作。
猜你喜欢
  • 1970-01-01
  • 2019-12-06
  • 2012-10-05
  • 1970-01-01
  • 2017-02-03
  • 2016-11-10
  • 2013-03-20
  • 2013-07-04
相关资源
最近更新 更多