【问题标题】:How can I generate pos receipts from web browser using Java如何使用 Java 从 Web 浏览器生成 pos 收据
【发布时间】:2016-10-20 06:48:50
【问题描述】:

我想使用 Java 从网络浏览器生成 POS(销售点)收据。

如何打印 pos 收据?

我相信jzebra 可能是一个选项,但如何?

【问题讨论】:

    标签: javascript java jquery ajax bootstrapping


    【解决方案1】:

    注意:我真的怀疑您会发现浏览器“愿意”在未经用户批准的情况下直接向打印机发送任何内容 - 这将是攻击毫无戒心的用户登陆恶意网站的好方法.所以,抱歉,不 - 您无法在客户端执行任何操作(Java 或任何其他语言)。

    因此,要么将您的收据格式化为 HTML(危险的工作,每个浏览器都有自己的字体设置),要么让您的服务器生成可下载的 PDF,然后用户可以打印该 PDF。

    对于在 Java 上运行的服务器端的 PDF 生成:

    • 安装 PDF“打印到文件”虚拟打印机(在 Linux 上,我使用了 CUPS-PDF 配置,结果直接保存在临时目录中);

    • 使您的“POS 收据渲染器”类采用Printable 接口并实现您的 POS 收据的渲染

    • 组织您的“POS 生成器”的代码以打开/配置一个PrinterJob,该PrinterJob 配置为使用您的receipt renderer,并针对识别您的PDF 虚拟打印机的PrintServiceJava Printing教程

    • 作业完成打印后,将其从目标目录中取出,并以 mime 类型为 application/pdf 的用户浏览器下载并提供给用户浏览器

    上面的所有内容都需要 3-4 个类,所以很抱歉没有向您显示一些代码(它将以某种方式依赖于服务器端逻辑和选择的 PDF 虚拟打印机,尤其是在“检测 PDF 打印是完成”部分)。

    【讨论】:

      【解决方案2】:

      使用 Java Applet 和类似技术(基于 NPAPI)可以通过 Web 浏览器打印材料。但在大多数主要的网络浏览器中,对 NPAPI 的支持几乎绝迹。

      有关在 NPAPI 支持被取消后如何继续进行的更多信息,请参阅此问题。

      Alternative to Jzebra/QZ Java Raw Print Plugin after NPAPI being dropped on Chrome Browser

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-09
        • 2015-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-28
        相关资源
        最近更新 更多