如何从 Web 应用程序打印到收据打印机?

Posted

技术标签:

【中文标题】如何从 Web 应用程序打印到收据打印机?【英文标题】:How to print from web application to receipt printer? 【发布时间】:2011-01-12 15:29:28 【问题描述】:

我的客户要求我通过我的网络应用程序在 Epson TM U220 (http://pos.epson.com/products/TM-U220.htm) 上打印收据。我不知道该怎么做。是否有任何 java 小程序或其他可用于打印的东西?我应该使用 JasperReports 吗? (JasperReports 是否有助于解决这个问题?) 如果有可以使用的 Flash 应用,我不反对使用。

我正在为我的网络应用程序使用 Grails。

【问题讨论】:

【参考方案1】:

您不需要小程序,您可以从 grails 控制器使用任何 Java 库。使用 javax.print 中运行时可用的 Java 打印服务。这是假设打印机安装在运行 grails 运行时的位置。

【讨论】:

【参考方案2】:

要使其正常工作,只需将收据打印机设置为默认打印机并将其重命名为“zebra”:

然后直接下载jZebra库,把jar文件放到项目目录下,嘿嘿:

<input type=button onClick="print()" value="Print">
<applet name="jzebra" code="jzebra.PrintApplet.class" archive="./jzebra.jar"  >
      <param name="printer" value="zebra">
</applet>

<script>
      function print() 
       document.jzebra.append("PRINTED USING JZEBRA\n");
       document.jzebra.print();
      
</script>

【讨论】:

这几天没那么容易了...来自 Oracle 的更新 45 要求对 Java 小程序进行签名才能在没有提示的情况下运行,因此在生产环境中安全使用 QZ Print 会产生一些成本。 @RobbieAverill 使用 qzpint websocket 也有这些限制? @Venkat 不确定。如果您在客户端浏览器上运行 Java 小程序(您需要这样做以连接到打印机),那么它可能需要以任何一种方式进行签名【参考方案3】:

不久前,我创建了一个应用程序来写入 POS 系统的收据打印机。我们这样做的方法是打开一个打印机,它通过管道连接到正确的收据打印机。我们手动将字符代码发送到打印机以创建粗体、下划线、字体更改等,因为客户要求我们这样做(有另一个应用程序使用这些字符代码,他们希望我们也使用它们) .

如果您不想像我一样进行手动操作,JavaPOS 是一个不错的选择。它有很多与收据打印机打印相关的东西(肯定比我上面描述的要优雅得多)。您可以在 http://www.javapos.com/ 找到它。

【讨论】:

以上是关于如何从 Web 应用程序打印到收据打印机?的主要内容,如果未能解决你的问题,请参考以下文章

php处理POS打印机和钱箱

如何通过 React Native 将打印作业发送到打印机

如何在 Flutter 中使用带有打印机名称的以太网 POS 打印机打印收据?

使用 PHP 打印到外部收据打印机

转义命令/ ByteArray转换为可读文本C#

如何使用 PAX a920 打印收据?