【问题标题】:Is it possible to interact with JavaPOS device using PHP POS in a simplistic manner?是否可以以简单的方式使用 PHP POS 与 JavaPOS 设备进行交互?
【发布时间】:2019-06-03 09:10:54
【问题描述】:

我们有一个用 PHP 编写的 POS,它需要与 POS 打印机交互。打印机支持 JavaPOS。 PHP POS的状态是生成账单,等待用户选择打印机。

现在的问题是,JavaPOS 打印机没有出现。我能够使用具有必要驱动程序和 jpos.xml 的测试 Java 代码进行交互。我希望“安装”这个。

根据我过去四天浏览不同制造商 [EPSON、Starmicronics、Diebold Nixdorfag] 的 JavaPOS 手册的理解,这是不可能的。 JavaPOS 适用于用 Java [JavaFX to Spring] 编写的 POS 系统。

但我觉得这很奇怪。我认为情况不应该如此,因为如果这是真的,那么非 Java 或 .Net 编写的 POS 将很难进行交互有大量的 POS 设备和终端。

因此,是否可以与非 Java 和非 .Net POS 交互以向 JavaPOS 设备发送打印命令?

请注意,仅安装设备并发送打印命令并不能解决问题。比如说,如果我想在收据的页脚中添加一个徽标以及动态数据,那么 .Net 将需要 Java 代码以使其“丰富”。现在,这段 Java 代码具体放在哪里?是不是某个在后台运行并伪装成打印机并显示在打印对话框中的虚拟设备,比如 PHP POS?

为与 JavaPOS 交互而编写的示例 Java 代码,其中 jpos.xml 文件作为参考。

public static void main(String[] args) {
    File f = new File(PrintFTest.class.getClassLoader().getResource("jpos.xml").getPath());

    System.setProperty(JposPropertiesConst.JPOS_POPULATOR_FILE_PROP_NAME, f.getAbsolutePath());
    //System.getProperties().list(System.out);
    FiscalPrinter fiscalPrinter = new FiscalPrinter();

    // Get Access to it
    try {
        fiscalPrinter.open("printf");
        fiscalPrinter.claim(1000);
        fiscalPrinter.setDeviceEnabled(true);
    } catch (JposException e) {
        System.out.println("Exception at Access");
        e.printStackTrace();
    }

    // Print 
    try {
        fiscalPrinter.resetPrinter();
        fiscalPrinter.beginFiscalReceipt(true);
        fiscalPrinter.printRecItem("Salame", 40000, 0, 0, 0, "");
        fiscalPrinter.printRecTotal(40000, 40000, "CONTANTI");
        fiscalPrinter.endFiscalReceipt(false);
    } catch (JposException e) {
        System.out.println("Exception at Print");
    }

    try {
        System.out.println("1FP - Fiscal Printer disabling");
        fiscalPrinter.setDeviceEnabled(false);
        System.out.println("2FP - Fiscal Printer releasing");
        fiscalPrinter.release();
        System.out.println("2FP - Fiscal Printer closing");
        fiscalPrinter.close();
    } catch (JposException e) {
        System.out.println("Exception at Close");
    }

}

}

【问题讨论】:

    标签: java php pos javapos


    【解决方案1】:

    应包含各打印机厂商提供的JavaPOS及其用户手册中的安装/设置/配置方法。

    请相应地安装和配置设备和软件。

    但是,一般来说,JavaPOS 打印机很少被认为是其各自操作系统的标准打印机设备。

    比如有这么一篇文章。
    Getting started with Java POS development
    JavaPOS Working Group

    接下来,建议您只在Java环境下使用这些程序来操作验证打印机。
    emigonza/POStest
    ntsggr/JavaPOS-POStest-2

    从 PHP 中使用 Java 有以下几种方法。
    PHP/Java Integration
    Using PHP-Java Bridges with WebLogic Server
    What is the PHP/Java Bridge?
    How it works
    Java Bridge
    @987654330 @

    如果可以通过上面的方法解决的话是没有问题的,但是我推荐下面的方法。

    • 结合 Java 程序和 JavaPOS 来创建一个独立运行的程序。
    • 该程序提供类似于POS处理单元的功能,例如“收据打印”。
    • 本程序与 PHP 的 POS 以裸 TCP/IP 套接字等简单轻便的方式进行通信,从而可以异步执行请求发出、完成通知或完成确认。

    另外:

    以下是一个完全用 Java 制作的 POS 应用程序示例。
    由于这些都是开源的,所以它似乎是编程的参考。
    但是否使用JavaPOS控件尚不清楚。

    Openbravo Java POS
    Floreant POS

    以下是一个用 PHP 编写的开源 POS 应用程序示例。
    可能不会使用JavaPOS。

    OpenSourcePOS
    WallacePOS

    【讨论】:

    • 供应商确实提供了 jpos.xml 和 Java 类来测试它是否有效。它无需安装打印机即可运行。我浏览了所有链接,非常有帮助。我*真正想要实现的是您的第一个要点,“Java 程序和JavaPOS”独立运行。在 POS 中,当单击 生成收据 时,它会显示典型的打印对话框,要求我们选择现有的打印机。我该如何处理?我是否创建了一个虚拟 Java 打印机,它从 POS 获取 PDF 并对其进行解析,然后在 Java 中逐行打印?
    • @devyJava,通常,当您在创建 PDF 之前创建带有文本的收据图像时,您会向 JavaPOS 打印机程序发出打印请求。由于通常只连接一台 POS 打印机,因此无需选择打印机。
    • 当点击按钮打印收据时,它与在 Microsoft Word 中按Ctrl+P 后看到的行为相同。我怀疑的部分是当在 POS [用 PHP 编写] 中发出打印请求时,我如何调用 JavaPOS 兼容打印机?就像您说的那样,没有真正的 安装 POS 设备与普通家用 HP Injket 打印机一起看到,也没有供应商在网站上可用。我所拥有的只是常规的 TestPrint.java、jpos.xml 和其他几个 JAR 库来使其运行。你认为 PHP -> Java 桥是必要的吗?
    • 我一直在阅读手册,甚至在您的链接中,我还没有遇到任何使 JavaPOS 成为在主机后台运行的独立、独立的“打印机”的指南.现在,如果打开一个打印对话框,JavaPOS 设备就会出现。还是我错过了图片中的重要内容?使用 Java 制作的 POS 是不可能的,它是用 PHP 编写的。
    • 这是因为我认为 PHP POS 应用程序推荐的机制不好,因为 Java 和 JavaPOS 的组合变得复杂。无论采用哪种方法,都认为从 PHP POS 应用程序使用 JavaPOS 设备的机制尚未公布或开源。所以,在这方面,你需要从一开始就发展,成为先锋。
    猜你喜欢
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 2012-07-04
    • 2012-01-03
    • 2023-03-14
    • 2017-06-03
    相关资源
    最近更新 更多