0

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

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

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");
    }

}

}

4

1 回答 1

1

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

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

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

比如有这样一篇文章。
Java POS 开发入门
JavaPOS 工作组

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

有几种方法可以从 PHP 中使用 Java,如下所示。使用 PHP-Java 桥接器与 WebLogic Server
集成 PHP/Java什么是 PHP/Java 桥接器?它是如何工作的Java Bridge如何从 PHP 调用自定义 java 方法?




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

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

此外:

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

Openbravo Java POS
Floreant POS

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

开源
POS WallacePOS

于 2019-01-09T02:15:33.903 回答