2010-02-03 17 views
14

Mon client m'a demandé d'imprimer des reçus sur une Epson TM U220 (http://pos.epson.com/products/TM-U220.htm) à partir de mon application Web. Je n'ai aucune idée de comment faire ça. Y a-t-il des applets Java ou autre chose que je peux utiliser pour l'impression? Devrais-je utiliser JasperReports? (Est-ce que JasperReports aide à résoudre ce problème?) S'il y a des applications flash qui pourraient être utilisées, je n'ai aucune objection à l'utiliser. J'utilise Grails pour mes applications Web.Comment imprimer à partir d'une application Web vers une imprimante de reçus?

Répondre

3

Vous n'avez pas besoin d'applet, vous pouvez utiliser une bibliothèque Java à partir d'un contrôleur Grails. Utilisez les services d'impression Java disponibles pour l'exécution dans javax.print. Cela suppose que l'imprimante est installée là où l'exécution de grails est en cours d'exécution.

2

J'ai créé une application pour écrire dans une imprimante de reçus pour un système POS il y a un certain temps. La façon dont nous l'avons fait était simplement d'ouvrir un graveur qui achemine vers l'imprimante de reçus correcte. Nous avons envoyé manuellement les codes de caractères à l'imprimante pour créer gras, soulignement, changement de police, etc. en raison des exigences du client pour que nous le fassions (il y avait une autre application qui utilisait ces codes de caractères et voulait que nous les utilisions aussi) .

Si vous ne voulez pas passer par le processus manuel comme je l'ai fait un bon choix est JavaPOS. Il a beaucoup de choses liées à l'impression aux imprimantes de reçus (certainement beaucoup plus élégant que je l'ai décrit ci-dessus). Vous le trouverez au http://www.javapos.com/.

2

Pour obtenir ce travail, il suffit de configurer votre imprimante de reçus comme imprimante par défaut et renommez comme « zèbre »:

enter image description here

Ensuite, il suffit de télécharger la bibliothèque jZebra, placez le fichier jar dans le répertoire du projet et hey 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

+1

Il est pas si facile ces jours-ci ... mise à jour 45 de Oracle exige que les applets Java soient signées pour s'exécuter sans invite, ce qui implique des coûts liés à l'utilisation de QZ Print en toute sécurité dans un environnement de production. –

+0

@RobbieAverill utilise qzpint websocket a également ces limitations? – Venkat

+0

@Venkat pas sûr. Si vous exécutez l'applet Java sur le navigateur des clients (ce que vous devez faire pour l'interface avec l'imprimante), il faudra probablement le signer de toute façon –