Web-Z-Print/etiquettes-custom-serial.py

60 lines
1.6 KiB
Python

import serial
import argparse
# Définissez le port série et la vitesse de communication (baud rate)
port = "/dev/ttyS4"
baud_rate = 38400
# Ajustement du Tear-off de l'imprimante (-120 à +120 sur 3 caractères)
tearoff = "018"
# Créez un objet de port série
ser = serial.Serial(port, baud_rate, timeout=1)
parser = argparse.ArgumentParser(description="Un script d'impression d'etiquettes sur Zebra")
# Définition des arguments
parser.add_argument("--qtt", type=int, required=True, help="Nombre d'etiquettes")
parser.add_argument("--texte", required=True, help="Texte de l'étiquette")
parser.add_argument("--bc", required=False, default="y", help="Ajouter un code barre")
# Analyse des arguments de la ligne de commande
args = parser.parse_args()
# Conversion des informations
number = int(args.qtt)
texte = str(args.texte)
barcode = str(args.bc)
label = texte
for num in range(0, number):
print (label)
if barcode == "y":
labelCode = '~TA' + tearoff + '^XA^CI27^FO15,20^BY2^BCN,80,N^FD' + label + '^FS^FO25,130^A0,50,28^FD' + label + '^FS^FO270,105^XGE:logo100^XZ'
else:
labelCode = '~TA' + tearoff + '^XA^CI27^FO15,25^A0,75,55^FD' + label + '^FS^FO270,105^XGE:logo100^XZ'
# Chaîne de caractères à envoyer
message = labelCode
# Encodez la chaîne en bytes, car les données sur le port série sont transmises sous forme de bytes
message_bytes = message.encode('windows-1252')
# Écrivez les données sur le port série
ser.write(message_bytes)
# Fermez le port série lorsque vous avez terminé
ser.close()