2010-02-03 3 views
14

Меня попросил мой клиент распечатать квитанции на Epson TM U220 (http://pos.epson.com/products/TM-U220.htm) из моего веб-приложения. Я не знаю, как это сделать. Есть ли какие-либо java-апплеты или что-то еще, что я могу использовать для печати? Должен ли я использовать JasperReports? (Помогает ли JasperReports справиться с этой проблемой?) Если есть флеш-приложения, которые можно использовать, я не возражаю против использования этого.Как распечатать с веб-приложения на принтере квитанции?

Я использую Grails для своих веб-приложений.

ответ

3

Вам не нужен апплет, из контроллера grails вы можете использовать любую библиотеку Java. Используйте службы печати Java, доступные для среды выполнения в javax.print. Предполагается, что принтер установлен там, где выполняется время выполнения Grails.

2

Я создал приложение для записи на принтер квитанции для системы POS некоторое время назад. То, как мы это делали, было просто открыть принтер, который подключается к правильному принтеру квитанции. Мы вручную отправили коды символов на принтер, чтобы создать жирный шрифт, подчеркивание, изменения шрифта и т. Д. Из-за требований клиента, которые мы делаем так (было другое приложение, которое использовало эти коды символов, и они хотели, чтобы мы использовали их также) ,

Если вы не хотите проходить ручной процесс, как я сделал хороший выбор, это JavaPOS. У этого есть много вещей, связанных с печатью на принтеры квитанции (определенно намного более изящные, чем я описал выше). Вы найдете его в http://www.javapos.com/.

2

Чтобы получить эту работу, просто настроить ваш чековый принтер в качестве принтера по умолчанию и переименовать его в «зебры»:

enter image description here

Тогда просто загрузите jZebra библиотеку, поместите файл банку в директории проекта и вуаля:

<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

+1

Это не так просто в эти дни ... обновление 45 из Oracle требует, чтобы Java-апплеты подписывались для запуска без запроса, поэтому есть некоторые затраты, связанные с безопасностью использования QZ-печати в производственной среде. –

+0

@RobbieAverill использует qzpint websocket также имеет эти ограничения? – Venkat

+0

@Venkat не уверен. Если вы запустите апплет Java в браузере клиентов (который вам нужно будет сделать для интерфейса с принтером), то его, вероятно, нужно будет подписывать в любом случае –