代码之家  ›  专栏  ›  技术社区  ›  devyJava

是否可以使用php pos以简单的方式与javapos设备交互?

  •  0
  • devyJava  · 技术社区  · 7 年前

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

    现在的问题是,javapos打印机不显示。我能够使用具有必要的驱动程序和JPOS.XML的测试Java代码进行交互。我想“安装”这个。

    根据我过去四天对不同制造商(epson、Starmicronics、diebold nixdorfag)的javapos手册的理解,这是不可能的。JavaPIS的意思是用Java编写的POS系统[JavaFXtoSpring ]。

    但我觉得相信这一点很奇怪。 我相信这不应该是这样的,因为如果这是真的,它将非常困难的POS不写在Java或.NET中与过多的POS设备和终端交互。

    因此,是否有可能与非Java和非.NET POS进行交互以将打印命令发送到JavaPoT?

    请注意,仅仅安装设备并发送打印命令并不能解决问题。比如说,如果我想在收据的页脚中添加一个徽标和动态数据,那么.NET将需要Java代码来实现它的“富”。这个Java代码具体在哪里?它是一个虚拟设备,在后台运行,假装是打印机,并出现在打印对话框中,比如说php-pos吗?

    编写Java代码与JavaP.jPas.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");
        }
    
    }
    

    }

    1 回复  |  直到 7 年前
        1
  •  1
  •   kunif    7 年前

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

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

    然而,一般来说,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程序和JavaP结合起来创建一个独立运行的程序。
    • 该程序提供与POS处理单元类似的功能,如“收据打印”。
    • 这个程序以一种简单而轻松的方式与PHP的POS通信,例如一个裸TCP/IP套接字,这样就可以异步地执行请求发布、完成通知或完成确认。

    此外:

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

    Openbravo Java POS
    Floreant POS

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

    OpenSourcePOS
    WallacePOS

    推荐文章