2010-02-03 7 views
14

Ich wurde von meinem Kunden gebeten, Belege auf einem Epson TM U220 (http://pos.epson.com/products/TM-U220.htm) aus meiner Webanwendung auszudrucken. Ich habe keine Ahnung, wie ich das machen soll. Gibt es Java-Applets oder etwas anderes, das ich zum Drucken verwenden kann? Sollte ich JasperReports benutzen? (Hilft JasperReports, mit diesem Problem fertig zu werden?) Wenn es Flash-Apps gibt, die verwendet werden können, habe ich keine Einwände dagegen.Wie drucke ich von der Webanwendung zum Belegdrucker?

Ich verwende Grails für meine Web-Apps.

Antwort

3

Sie benötigen kein Applet, von einem Grails-Controller können Sie eine beliebige Java-Bibliothek verwenden. Verwenden Sie die Java-Druckdienste, die in javax.print für die Laufzeit verfügbar sind. Dies setzt voraus, dass der Drucker dort installiert ist, wo die Grails-Laufzeit läuft.

2

Ich habe eine App erstellt, um vor einer Weile auf einen Belegdrucker für ein POS-System zu schreiben. Die Art und Weise, wie wir es gemacht haben, bestand darin, einfach einen Drucker zu öffnen, der zum richtigen Belegdrucker pumpt. Wir haben die Zeichencodes manuell an den Drucker gesendet, um Fett-, Unterstreichungs-, Zeichensatzänderungen usw. zu erstellen, weil der Kunde es so gemacht hat (es gab eine andere Anwendung, die diese Zeichencodes verwendete und sie wollten, dass wir sie auch benutzen) .

Wenn Sie nicht durch den manuellen Prozess gehen möchten, wie ich eine gute Wahl hatte, ist JavaPOS. Es hat viele Sachen im Zusammenhang mit dem Drucken auf Bondrucker (auf jeden Fall viel eleganter als ich oben beschrieben). Sie finden es unter http://www.javapos.com/.

2

diese Funktion erhalten, indem Sie die Setup-Quittungsdrucker als Standarddrucker und benennen Sie es als „Zebra“:

enter image description here

Dann laden Sie einfach die jZebra Bibliothek, die JAR-Datei in dem Projektverzeichnis setzen und schwupps:

<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

Es ist nicht so einfach, in diesen Tagen ... Update 45 aus Oracle benötigt Java-Applets, die signiert werden müssen, um ohne Aufforderung ausgeführt zu werden. Es entstehen also einige Kosten für die sichere Verwendung von QZ Print in einer Produktionsumgebung. –

+0

@RobbieAverill verwendet qzpint Websocket hat auch diese Einschränkungen? – Venkat

+0

@Venkat nicht sicher. Wenn Sie das Java-Applet im Client-Browser ausführen (was Sie für die Schnittstelle zum Drucker tun müssten), müsste es wahrscheinlich auf jede Weise signiert werden –