l'envoi de données brutes via USB sous Linux
-
29-09-2019 - |
Question
Je l'impression des étiquettes sur une imprimante Zebra TLP-2844, et ont été le faire bien sur Windows en envoyant les instructions de protection de l'emploi à l'imprimante USB partagée comme suit:
type Label.prn> \ my-pc \ zebra
et il semble fonctionner avec des ports série aussi, avec
Type Label.prn> COM1
Maintenant, je suis en train de la même sous Linux, mais il devient vraiment difficile! Ma première hypothèse était la suivante:
cat Label.prn | / Dev / bus / usb / 005/002
depuis mon imprimante est sur le bus 005, dispositif 002 (vérifié avec la commande lsusb
), mais il ne fonctionne pas du tout, comme je l'obtiens ce qui suit:
bash: / dev / bus / usb / 005/002: Autorisation refusée
Les suppositions?
La solution
La commande que vous avez fait
cat Label.prn | /dev/bus/usb/005/002
va essayer de courir /dev/bus/usb/005/002
, qui n'est pas exécutable, d'où la « permission refusée ».
serait la commande correcte, similaire à Windows
cat Label.prn > /dev/bus/usb/005/002
Cependant, pas sûr que vous pouvez réellement écrire quoi que ce soit à une imprimante comme ça sous Linux. Si l'imprimante est correctement configuré, vous pouvez également essayer:
lpr Label.prn
Autres conseils
Dans le cas où quelqu'un d'autre tente d'accéder directement aux ports d'imprimante USB brute; Le problème « Autorisation refusée » est contournée en ajoutant votre utilisateur au groupe « lp », comme suit:
$ sudo usermod -aG lp USERNAME
où est votre nom d'utilisateur USERNAME.
Désolé par mon anglais.
J'ai testé ici, mon imprimante TLP2844 connecter sur USB, dans mon conseil ARM9 embarqué avec Linux.
Je tapé invite de commande:
printf « OD \ r \ nN \ r \ ND5 \ r \ nS2 \ r \ TNZ \ r \ nQ128, 24 \ r \ nq400 \ r \ nA15,10,0,2,1,1, N, \ "TESTE \" \ r \ np1 \ r \ NFE \ r \ n »> / dev / lp0
et ... TEST imprimé
- Vous devriez changer le mode d'accès / dev / usb / lp0 périphérique:
sudo chmod a+w /dev/usb/lp0
- Et puis vous pouvez imprimer une étiquette en utilisant la commande de copie:
cp test.zpl /dev/usb/lp0
Vous pouvez aussi créer votre propre système de construction en Sublime Text par exemple:
{
"cmd": ["cp", "$file", "/dev/usb/lp0"],
"encoding": "utf8"
}
et envoyer des fichiers à l'imprimante en appuyant sur les touches Ctrl + B immédiatement après avoir terminé modifier l'étiquette.
Ou vous pouvez essayer mon outil pour envoyer des étiquettes ZPL à l'imprimante via TCP / IP: https://github.com/kashamalasha/AutoIt_ZebraTester
Il a été écrit sur le langage de script AutoIt, vous devez installer AutoIt pour le construire. Malheureusement, il n'y a pas de description sur l'anglais, seulement russe, mais je peux l'écrire très bientôt, si vous en aurez besoin.