Можно ли взаимодействовать с устройством JavaPOS с помощью PHP POS в упрощенной форме?
У нас есть POS, написанный на PHP, который должен взаимодействовать с POS-принтером. Принтер поддерживает JavaPOS. Состояние PHP POS заключается в том, что он генерирует счет и ждет, когда пользователь выберет принтер.
Проблема в том, что принтер JavaPOS не появляется. Я могу взаимодействовать с использованием тестового кода Java, который имеет необходимые драйверы & jpos.xml. Я хочу "установить" это.
Исходя из моего понимания в течение последних четырех дней, изучая руководства JavaPOS от разных производителей [EPSON, Starmicronics, Diebold Nixdorfag ], это невозможно. JavaPOS предназначен для системы POS, написанной на Java [JavaFX to Spring].
Но мне очень странно в это верить. Я полагаю, что это не должно иметь место, потому что если это так, POS, не написанным на Java или.Net, будет очень трудно взаимодействовать с множеством POS-устройств и терминалов там.
Следовательно, возможно ли взаимодействовать с не Java и не.Net POS для отправки команды печати на устройство JavaPOS?
Обратите внимание, что простая установка устройства и отправка команды печати не решает проблему. Скажем, если я хочу добавить логотип к квитанции вместе с динамическими данными в нижнем колонтитуле квитанции, Java-код потребуется для.Net, чтобы сделать его "богатым". Теперь, где конкретно находится этот Java-код? Это какое-то виртуальное устройство, которое работает в фоновом режиме и изображает из себя принтер и отображается в диалоговом окне печати, скажем, в POS PHP?
Пример Java-кода, написанного для взаимодействия с JavaPOS с файлом 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");
}
}
}
1 ответ
Он должен содержать метод установки / настройки / настройки в JavaPOS, предоставляемый каждым поставщиком принтера, и руководство пользователя.
Пожалуйста, установите и настройте оборудование и программное обеспечение соответственно.
Однако, как правило, принтеры JavaPOS редко распознаются как стандартные принтеры для соответствующих операционных систем.
Например, есть такая статья.
Начало работы с разработкой Java POS
Рабочая группа JavaPOS
Далее, рекомендуется использовать эти программы для работы и проверки принтера только в среде Java.
https://github.com/emigonza/POStest
https://github.com/ntsggr/JavaPOS-POStest-2
Есть несколько способов использовать Java из PHP следующим образом.
Интеграция PHP/Java
Использование мостов PHP-Java с сервером WebLogic
Что такое мост PHP/Java?
Как это устроено
Java Bridge
Как вызвать пользовательские методы Java из PHP?
Нет проблем, если это можно решить с помощью вышеуказанного метода, но я рекомендую следующий метод.
- Объедините программу Java и JavaPOS, чтобы создать программу, которая работает автономно.
- Программа предоставляет функции, аналогичные POS-процессорам, таким как "печать чеков".
- Эта программа взаимодействует с POS-кодом PHP простым и легким способом, таким как чистый TCP/IP-сокет, так что выдача запроса, уведомление о завершении или подтверждение завершения могут выполняться асинхронно.
К тому же:
Ниже приведен пример POS-приложения, полностью выполненного на Java.
Так как они с открытым исходным кодом, кажется, это ссылка для программирования.
Однако неизвестно, используется элемент управления JavaPOS или нет.
Openbravo Java POS
Floreant POS
Ниже приведен пример POS-приложения с открытым исходным кодом, написанного на PHP.
Вероятно, JavaPOS не будет использоваться.