我们有一个用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();
}
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");
}
}
}