簡體   English   中英

是否可以通過簡單的方式使用PHP POS與JavaPOS設備進行交互?

[英]Is it possible to interact with JavaPOS device using PHP POS in a simplistic manner?

我們有一個用PHP編寫的POS,需要與POS打印機進行交互。 打印機支持JavaPOS。 PHP POS的狀態是它生成帳單並等待用戶選擇打印機。

現在的問題是,JavaPOS打印機沒有出現。 我可以使用具有必要驅動程序&jpos.xml的測試Java代碼進行交互。 我希望“安裝”此文件。

根據我過去四天對不同制造商[EPSON,Starmicronics,Diebold Nixdorfag]的JavaPOS手冊的了解,這是不可能的。 JavaPOS用於用Java [Spring的JavaFX]編寫的POS系統。

但是我相信這一點很奇怪。 我相信事實並非如此,因為如果這是真的,那么非Java或.Net編寫的POS將很難與大量POS設備交互並在那里終端。

因此,是否可以與非Java和非.Net POS交互以將打印命令發送到JavaPOS設備?

請注意,僅安裝設備並發送打印命令並不能解決問題。 假設,如果我想在收據中添加徽標以及動態數據,請在收據的頁腳中添加.Net以使其變得“豐富”。 現在,此Java代碼專門放在哪里? 它是某個虛擬設備,它在后台運行並假裝成打印機,並在PHP POS這樣的打印對話框中顯示嗎?

編寫了與jpos.xml文件作為與JavaPOS交互的示例Java代碼。

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打印機很少被視為各自操作系統的標准打印機設備。

例如,有這樣的文章。
Java POS開發入門
JavaPOS工作組

接下來,建議您僅在Java環境中使用這些程序來操作和驗證打印機。
emigonza / POStest
ntsggr / JavaPOS的-POStest -2-

有以下幾種從PHP使用Java的方法。
PHP / Java集成
將PHP-Java橋與WebLogic Server一起使用
什么是PHP / Java橋?
這個怎么運作
Java橋
如何從PHP調用自定義Java方法?

如果可以通過上述方法解決,則沒有問題,但是我建議使用以下方法。

  • 組合Java程序和JavaPOS以創建獨立運行的程序。
  • 該程序提供類似於POS處理單元的功能,例如“收據打印”。
  • 該程序以簡單明了的方式與PHP的POS通信,例如裸露的TCP / IP套接字,因此可以異步執行請求發布,完成通知或完成確認。

此外:

以下是完全用Java制作的POS應用程序的示例。
由於這些都是開源的,因此似乎是編程的參考。
但是,未知是否使用JavaPOS控件。

Openbravo Java POS
Floreant POS

以下是用PHP編寫的開源POS應用程序的示例。
可能不會使用JavaPOS。

OpenSourcePOS
WallacePOS

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM