Как печатать из веб-приложения на принтере квитанции?
Меня попросил мой клиент распечатать квитанции на Epson TM U220 (http://pos.epson.com/products/TM-U220.htm) из моего веб-приложения. Я не знаю, как это сделать. Есть ли какие-либо java-апплеты или что-то еще, что я могу использовать для печати? Должен ли я использовать JasperReports? (Помогает ли JasperReports справиться с этой проблемой?)
Если есть флеш-приложения, которые могут быть использованы, я не возражаю против использования этого.
Я использую Grails для своих веб-приложений.
Ответы
Ответ 1
Вам не нужен апплет, из контроллера grails вы можете использовать любую библиотеку Java. Используйте службы печати Java, доступные для среды выполнения в javax.print. Предполагается, что принтер установлен там, где выполняется время выполнения Grails.
Ответ 2
Я создал приложение для записи на принтер квитанции для POS-системы некоторое время назад. То, как мы это делали, было просто открыть принтер, который подключается к правильному принтеру квитанции. Мы вручную отправили коды символов на принтер, чтобы создать жирный шрифт, подчеркивание, изменения шрифта и т.д. Из-за требований клиента, которые мы делаем так (было другое приложение, которое использовало эти коды символов, и они хотели, чтобы мы использовали их также).
Если вы не хотите проходить ручной процесс, как я сделал хороший выбор, это JavaPOS. У этого есть много вещей, связанных с печатью на принтеры квитанции (определенно намного более изящные, чем я описал выше). Вы найдете его в http://www.javapos.com/.
Ответ 3
Чтобы получить эту работу, просто настройте принтер квитанций в качестве принтера по умолчанию и переименуйте его как "зебра":
![enter image description here]()
Затем просто загрузите библиотеку jZebra, поместите файл jar в каталог проекта и эй presto:
<input type=button onClick="print()" value="Print">
<applet name="jzebra" code="jzebra.PrintApplet.class" archive="./jzebra.jar" width="100" height="100">
<param name="printer" value="zebra">
</applet>
<script>
function print() {
document.jzebra.append("PRINTED USING JZEBRA\n");
document.jzebra.print();
}
</script>
![enter image description here]()