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
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.
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/.
Pour obtenir ce travail, il suffit de configurer votre imprimante de reçus comme imprimante par défaut et renommez comme « zèbre »:
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>
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. –
@RobbieAverill utilise qzpint websocket a également ces limitations? – Venkat
@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 –