2009-05-20 4 views
1

Y at-il un moyen d'envoyer directement une chaîne codée "ESC" à une imprimante matricielle Epson connectée sur un port USB en utilisant Java. J'ai essayé celui-ci en utilisant le port LPT1 avec succès. Cependant, la majorité de nos clients utilisent maintenant des câbles USB à la place des anciens câbles parellulaires. Le principal problème que j'ai est comment ouvrir l'USB particulier où l'imprimante est connectée en tant que flux de sortie en Java. Merci d'avance pour tous conseils et suggestions.Envoi d'un fichier générique/texte directement sur une imprimante matricielle Epson via un port USB en utilisant Java

Répondre

1

Cette article on JSR-80 pourrait vous aider. On dirait que ce n'est pas trivial du tout et dépend de l'OS ...

1

Puisque vous dites LPT1, je suppose que c'est pour Windows.

Je ne vois pas de solution 100% Java à cela, vous voulez traiter avec le matériel

JNI

Vous pouvez utiliser JNI pour appeler une DLL de Windows écrit dans une langue maternelle (C/C++/Delphi) qui exporte une fonction SendData. Vous pouvez préparer les données dans un fichier temporaire (nom de fichier aléatoire), et la DLL l'enverra à l'imprimante, puis le supprimera.

En Java, vous pouvez utiliser load et loadlibrary pour charger la DLL.

Utilisez des solutions toutes faites pour le convertir en USB/LPT

0

Voici comment cela se fait en Java:

PrintService pservice = ... // acquire print service of your printer 
DocPrintJob job = pservice.createPrintJob(); 
String commands = ""; 
commands += "\u001B\u0045\u000A"; // plain 
commands += "Hello "; 
commands += "\u001B\u0045\u000D"; // bold 
commands += "ESCP!"; 
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE; 
Doc doc = new SimpleDoc(commands.getBytes(), flavor, null); 
job.print(doc, null); 

Emprunté de: https://stackoverflow.com/a/9309845/3196753

Note sur certains systèmes d'exploitation, l'imprimante doit être configurée comme un raw/generic print device. Pour les imprimantes USB, cela implique souvent l'installation du pilote USB, puis l'ajout d'une deuxième imprimante avec le même port, mais un pilote brut ou générique.

Questions connexes