java - 是否可以使用 PHP POS 以简单的方式与 JavaPOS 设备进行交互?

标签 java php pos javapos

我们有一个用 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 设备?

请注意,仅安装设备并发送打印命令并不能解决问题。比如说,如果我想在收据上添加 Logo 以及收据页脚中的动态数据,.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");
    }

}

}

最佳答案

它应该包含每个打印机供应商提供的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
How to call custom java methods from PHP?

如果用上面的方法解决就没有问题,但是我推荐下面的方法。

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

此外:

以下是完全用 Java 编写的 POS 应用程序的示例。
由于这些都是开源的,看来可以作为编程的引用。
但是否使用JavaPOS控制尚不清楚。

Openbravo Java POS
Floreant POS

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

OpenSourcePOS
WallacePOS

关于java - 是否可以使用 PHP POS 以简单的方式与 JavaPOS 设备进行交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54095813/

相关文章:

php - 我如何使用 Symfony Finder 组件按 DESC 顺序对文件进行排序?

python - 我需要想办法在触摸屏上获取用户签名

go - 我正在使用 go 语言打印到 POS 打印机,但汉字打印错误。 (英语可以)

odoo - 如何在 Odoo POS 收据中添加二维码图像

Java:增强的 for 循环,数组大小未知

java - 从 yaml 文件中检索嵌套 Hashmap 数据

java - 如何使用 java 将十六进制转换为十进制 rgb565?

java - 从 src 目录中的类访问 test 目录中的类

php - 如何在 PHP 和 MySQL 中使用货币值?

php - 更改 WooCommerce 购物车和结帐中的产品价格