2013-03-10 5 views
2

Je dois tracer une ligne horizontale (une ligne pleine mais pointillée sera parfaite!) À mon reçu en utilisant les commandes ESC/POS. Maintenant j'utilise un hack qui me permet de tracer une ligne horizontale en utilisant la commande "UnderLine" avec quelques caractères d'espace, mais je ne l'aime pas parce que je dois donner à la ligne des propriétés de dessin comme un " Hauteur ":Comment dessiner une ligne avec ESC/POS?

PRINT #1, CHR$(&H1B);"-";CHR$(1); <==== set underline on 
PRINT #1, "   "; CHR$(&HA); 
PRINT #1, CHR$(&H1B);"-";CHR$(0); <==== set underline off 

Je crois que cela peut arriver avec des commandes d'images bit, mais je n'ai aucune idée de comment faire cela.

Merci à l'avance

+0

Une ligne en pointillé ne serait-elle pas simplement "--------------" '? Ou peut-être '" - - - - - - - - - - "'? – nneonneo

+0

Qu'est-ce qui ne va pas avec juste l'impression des traits de soulignement? chr $ (95) – Hazzit

+0

Oui, c'est le moyen le plus simple, mais j'en ai besoin pour imprimer automatiquement en pleine largeur. Et aussi besoin de donner une hauteur à la ligne. – Muhammad

Répondre

-2

Vous devez aller en mode page, et définir l'espacement char à 0 + utiliser une police de petite taille et de style probablement gras pour qu'il n'y ait pas plus d'espace entre les underscores. Pour définir la hauteur de ligne, la seule solution consiste à dessiner plusieurs lignes empilées les unes sur les autres. Ceci est possible en mode page car vous pouvez placer les données où vous voulez en utilisant la zone d'impression (ESC W).

Une autre astuce possible est d'utiliser les logos pour dessiner les lignes (toujours en mode page)

0

Une autre façon d'imprimer des graphiques spéciaux est d'utiliser la commande image bit 0x1B 0x2A (ESC *) Ensuite, réglez le nombre de bits à travers la page, puis générer une carte de pixels large de 8 bits par xx octets. les 8 bits sont représentés par MSB (en haut) à LSB (en bas) donc une ligne haute de 8 pixels est 0xFF. J'utilise souvent des octets de données 0x80 pour dessiner une ligne de 1 pixel, ou 0x01 pour mettre la ligne en bas. En outre, vous pouvez référencer cet article: http://nicholas.piasecki.name/blog/2009/12/sending-a-bit-image-to-an-epson-tm-t88iii-receipt-printer-using-c-and-escpos/ Amusez-vous.

Questions connexes