2015-08-18 3 views
6

Я разрабатываю приложение Point Of Sale, и одна из функций - распечатать квитанцию ​​в термопринтер-принтере. В настоящее время у меня есть принтер Datecs DPP-255.Распечатка квитанции с использованием принт-квитанции

Я не знаю, с чего начать мой квест.

Я пробовал поиск через интернет, выяснил, что JavaPOS/UnifiedPOS существует, но я не смог найти достаточную документацию, чтобы начать работу. Прошу пролить свет.

ответ

1

Итак, похоже, что этот принтер поддерживает что-то, называемое ESC/POS, которое похоже на набор команд, который позволяет печатать и форматировать данные. Есть несколько руководств, доступных в Интернете, это один из них, который я использовал до этого: http://www.starmicronics.com/support/mannualfolder/escpos_cm_en.pdf

Обратите внимание, что принтеры иногда тонко отличаются друг от друга, в которых команды устанавливаются с ESC/POS, которые они поддерживают, поэтому у вас может быть несколько проб и ошибок на ваши руки.

Что касается отправки этих данных на принтер, это зависит от типа подключения. Для последовательного подключения вы должны просто открывать и записывать на этот порт, используя набор команд ESC/POS.

Не все данные, которые вы отправите, будут закодированы в ASCII или UTF, многие из них представляют собой двоичные значения, которые необходимо отправить. Так, например, чтобы сообщить принтеру о записи новой строки, значение Hex для этого - 0A. Таким образом, в Java вы должны указать, что, как String s = "\u000A"; и т.д.

Для Java вам нужно будет загрузить API Java Comm из http://java.sun.com/products/javacomm/

Существует учебник по этому здесь: http://www.java-samples.com/showtutorial.php?tutorialid=214

Надеется, что это помогает ,

+0

Обратите внимание, что установка Java Comm очень болезненна. Он включает в себя копирование dll непосредственно в установку jvm. Альтернативой является просто использование plink (от шпатлевки), который только начинается как процесс из java и read/write с stdio. –

+0

Также у меня были некоторые проблемы с стабильностью с java comm в последний раз, когда я использовал его. При использовании plink процесс plink можно просто убить и перезапустить в случае ошибки, а затем выпустить все ресурсы обратно в ОС. –

+0

'' \ u000A "' также известен как '\ \ n" ', то есть newline. И «\ u000A» не будет работать, поскольку компилятор Java будет интерпретировать это как литеральный штрих в кавычках. См. Http://stackoverflow.com/questions/3866187/why-cant-i-use-u000d-and-u000a-as-cr-and-lf-in-java –

4

Вот проект с открытым кодом для тестирования, которые также могут быть использованы в качестве ссылки о том, как программировать с помощью JavaPOS (исходный код доступен):

  • JavaPOS POSTest 2 - приложение JavaPOS для тестирования JavaPOS устройств (источник код here).

Также здесь представлены некоторые проекты, размещенные на GitHub (см исходный код, чтобы получить представление и играть с):


Ссылки по теме:


ПРИМЕЧАНИЕ:
для того, чтобы использовать JavaPOS (которая теперь является частью UnifiedPOS specification см Приложение B), производитель вашего устройства Datecs DPP-255 должен предоставить e связанные драйверы. Предоставляются ли они? JavaPOS - это спецификация , поэтому соответственно должна быть какая-то реализация.

+0

Я создаю проект для вышеуказанного POStest, следующая ошибка: я получил файл jpos/res/jpos.properties не найден jpos/res/jpos.properties файл не найден Исключение из потока "main" java.lang.NoClassDefFoundError: org/apache/xerces/parsers/DOMParser –

+0

@YunusEinsteinium Похоже, что библиотека Apache Xerces недоступна в пути к классам. Я обновил ссылку на проект POSTest (первая ссылка), начальная страница, похоже, устарела, поэтому есть версия 2 этого проекта, которая более актуальна (плюс исправления ошибок). Загрузите оттуда, что ZIP-файл определенно содержит _xerces, jar_-файл. – informatik01

+0

И * jpos.properties * тоже не находится на пути к классам. Btw новый проект POSTest 2 основан на Maven, поэтому он имеет требуемую зависимость (* Apache Xerces *), определенную в файле POM. Бинарный (то есть скомпилированный POSTest) имеет * xerces.jar *. – informatik01

Смежные вопросы