Envoyer raw ZPL pour imprimante Zebra via USB
Généralement, lorsque je branche mon Zebra LP 2844-Z pour le port USB, l'ordinateur ne voit en elle qu'une imprimante et je peux imprimer à partir du bloc-notes comme toutes les autres d'imprimante générique. Cependant, ma demande a certains de code à barres caractéristiques. Ma demande analyse de certains et génère une mémoire chaîne de ZPL. Comment puis-je envoyer ce ZPL données de mon périphérique USB?
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la réponse... ou au moins, la réponse la plus facile si il y en a plusieurs). Quand j'ai installé l'imprimante, je l'ai renommé pour "SCI de l'Imprimante d'Étiquettes". Voici comment modifier les options pour permettre pass-through commandes ZPL:
Dans mon code, j'ai juste à ajouter "${" au début de mon ZPL et "}$" à la fin et l'imprimer sous forme de texte brut. C'est avec le "pilote Windows pour ZDesigner LP 2844-Z imprimante Version 2.6.42 (Build 2382)". Fonctionne comme un charme!
J'ai encore trouvé un moyen plus facile d'écrire sur une imprimante Zebra sur un port COM. Je suis allé dans le panneau de configuration et ajout d'une nouvelle imprimante. Pour le port, j'ai choisi COM1 (le port de l'imprimante est branché). J'ai utilisé un "Générique /Texte Seulement" du pilote d'imprimante. J'ai désactivé le spouleur d'impression (standard option dans les préférences de l'imprimante) ainsi que toutes les options d'impression avancées. Maintenant, je peux vous suffit d'imprimer n'importe quelle chaîne de l'imprimante et si la chaîne contient des ZPL, l'imprimante rend la ZPL bien! Pas besoin de spécial "démarrer séquences" ou funky, des trucs comme ça. Yay pour des raisons de simplicité!
Visual Studio C# solution (qui se trouve à http://support.microsoft.com/kb/322091)
L'étape 1.) Créer une classe RawPrinterHelper...
L'étape 2.) Créer un formulaire avec une zone de texte et un bouton (zone de texte maintenez la ZPL à envoyer dans cet exemple). Dans l'événement clic du bouton ajouter un code...
Avec cette solution, vous pouvez personnaliser pour répondre à des exigences spécifiques. Peut-être coder en dur l'imprimante spécifique. Peut-être dériver le ZPL texte de façon dynamique, plutôt que d'une zone de texte. Quoi que ce soit. Peut-être que vous n'avez pas besoin d'une interface graphique, mais cela montre comment envoyer de la ZPL. Votre utilisation dépend de vos besoins.
Vous n'avez pas mentionné une langue, alors je vais vous donner quelques conseils sur la façon de le faire avec le droit de l'API Windows dans C.
Tout d'abord, d'ouvrir une connexion à l'imprimante avec
OpenPrinter
. Ensuite, commencer à rédiger un document avecStartDocPrinter
avoir lepDatatype
domaine de laDOC_INFO_1
structure de"RAW"
- ceci indique que le pilote d'imprimante de ne pas coder quelque chose va à l'imprimante, mais de le transmettre inchangé. UtilisationStartPagePrinter
pour indiquer la première page,WritePrinter
pour envoyer les données à l'imprimante et fermez-la avecEndPagePrinter
,EndDocPrinter
etClosePrinter
lorsque vous avez terminé.ZPL est la bonne façon de procéder. Dans la plupart des cas, il est correct d'utiliser un pilote que les résumés des commandes GDI; cependant Zebra imprimantes d'étiquettes sont un cas particulier. La meilleure façon d'imprimer sur une imprimante Zebra est de générer ZPL directement. Notez que le pilote d'imprimante pour une imprimante Zebra est un "texte brut" imprimante - il n'y a pas un "pilote" qui pourrait être mis à jour ou modifié dans le sens que nous pensons de la plupart des imprimantes ayant des conducteurs. C'est juste un pilote dans l'absolu minimaliste sens.
J'ai passé 8 heures pour le faire.
C'est simple...
Vous devriez avoir un code comme ça:
Changement de variable du contenu à partir de 3 (ouvrir le fichier existe déjà) à 1 (pour créer un nouveau fichier).
Il va travailler à Windows 7 et XP.
Installer un partage de votre imprimante: \localhost\zebra
Envoyer ZPL en tant que texte, essayez avec une copie de:
la copie du fichier.zpl \localhost\zebra
très simple, presque pas de codage.
Vous pouvez utiliser COM, ou de P/Invoke de .Net, pour ouvrir la Winspool.drv pilote et envoyer des octets directement vers les périphériques. Mais vous ne voulez pas le faire; en général, cela ne fonctionne que pour un seul appareil sur une version d'un pilote d'essai, et les pauses sur tout le reste. Profiter de cette de longue, douloureuse, l'expérience personnelle.
Ce que vous voulez faire est d'obtenir un code à barres de la police ou de la bibliothèque qui attire les codes-barres à l'aide de la plaine de vieux ou du GDI GDI+ commandes; il y en a une pour .Net ici. Cela fonctionne sur tous les appareils, même après Zebra change le pilote.