Las impresoras de etiquetas pueden admitir lenguajes de programación como TSPL, ZPL, EPL, etc. Hoy vamos a repasar el lenguaje TSPL. Podemos construir etiquetas usando comandos TSPL como , y . Por ejemplo, si queremos imprimir una etiqueta con un texto y un código de barras, usamos estos comandos con sus propiedades como posición o tamaño, y enviamos estos comandos a la impresora de etiquetas a través de Bluetooth o una conexión en serie. TEXT BARCODE QRCODE En el lado izquierdo, puede ver los comandos TSPL y la etiqueta impresa en el lado derecho. Puede encontrar todos los comandos disponibles , pero veamos algunos de ellos para entender cómo usar el TSPL. aquí Coordenadas y tamaño en puntos Ya sea un , CÓDIGO DE o , generalmente, las coordenadas y el tamaño están en puntos. El número de puntos por pulgada depende del DPI de la impresora. TEXT BARCODE BITMAP Por ejemplo, si la impresora está 203 DPI → significa que hay 203 puntos en una pulgada, o hay 8 puntos en 1 mm. 300 DPI → significa que hay 300 puntos en una pulgada o hay 11,8 puntos en 1 mm. De acuerdo con esto, si queremos agregar un código de barras con una altura de 10 mm y la impresora es de 203 DPI, entonces debemos establecer la altura en (10 mm x 8 = 80 puntos). 80 Tamaño y espacio de la etiqueta Necesitamos decirle a la impresora el tamaño de la etiqueta de esta manera: SIZE 4,1 Aquí dijimos que el tamaño de la etiqueta es de 4x1 pulgadas. También podemos configurarlo en un sistema métrico (mm): SIZE 50 mm,25 mm Podemos establecer el espacio que es el espacio entre las etiquetas ( ). GAP m,n GAP 0,0 Aquí el espacio es de cero pulgadas, lo que significa que es una etiqueta continua. Texto Podemos usar el comando para imprimir un texto en la etiqueta. Podemos dar la posición, el tamaño de fuente, la rotación, etc.: TEXT TEXT x,y,“font”,rotation,x-multiplication,y-multiplication,[alignment,] “content” Parámetro Descripción x, y coordenada x e y fuente Generalmente, podemos configurar 1-8 (1-pequeño, 2-más grande... 8-más grande) rotación 0, 90, 180, 270 en el sentido de las agujas del reloj x e y-multiplicación Factor de escala 1-10 alineación 1 izquierda, 2 centro, 3 derecha (opcional) contenido Contenido del texto Comandos de muestra Resultado TEXT 10,20,"1",0,1,1,"FONT 1" TEXT 10,70,"2",0,1,1,"FONT 2" TEXT 10,120,"3",0,1,1,0,"FONT 3" Código de barras Podemos agregar un código de barras a la etiqueta con el comando : BARCODE BARCODE X,Y,”code type”,height,human-readable,rotation,narrow,wide,[alignment,]”content” Parámetro Descripción x, y coordenada x e y tipo de código 128, EAN128, EAN13… altura Altura en puntos legible por humanos 0 - el valor del código de barras (texto) no es visible 1 - el texto está alineado a la izquierda 2 - alineado al centro 3 - alineado a la derecha rotación 0, 90, 180, 270 en el sentido de las agujas del reloj angosto Ancho del elemento estrecho en puntos amplio Ancho del elemento ancho en puntos alineación 1 izquierda, 2 centro, 3 derecha (opcional) contenido Contenido del código de barras Ejemplos de comandos: TEXT 10,10, "2",0,1,1, "Human readable alignment" BARCODE 10,50, "128",100,1,0,2,2,"left" BARCODE 310,50, "128",100,2,0,2,2,"center" BARCODE 610,50, "128",100,3,0,2,2,"right" Resultado: Comandos IMPRIMIR y FIN Después de construir la etiqueta, debemos decirle a la impresora que la etiqueta está lista para imprimir. Usamos el comando para hacer esto: PRINT m[,n] Comandos Descripción SIZE 50 mm,25 mm CLS TEXT 10,10, "2",0,1,1, "Text 1" PRINT 1 CLS TEXT 10,10, "2",0,1,1, "Text 2" PRINT 2 END - Establecer el tamaño de la etiqueta - Borrar el búfer - Añadir texto - Imprimir el búfer una vez - Borrar el búfer - Añadir texto - Imprimir el búfer dos veces - Fin del programa Imprime tres etiquetas; una etiqueta con "Texto 1" y dos etiquetas con "Texto 2". Agregamos el comando al final, para decirle a la impresora que hemos terminado de imprimir. Sin este comando, es posible que la impresora no imprima la última imagen en el búfer. END Impresión con JavaScript (Node.js) Los comandos generados se pueden enviar a la impresora a través de Serial o Bluetooth. Para demostrar esto, creé un código simple usando Node.js. Utilicé el paquete ' ' para conectar y enviar los comandos (en Windows, es posible que deba instalar un controlador; ). usb para obtener más información, visite la página del paquete const usb = require('usb'); const cmds = [ 'SIZE 48 mm,25 mm', 'CLS', 'TEXT 10,10,"4",0,1,1,"HackerNoon"', 'BARCODE 10,60,"128",90,1,0,2,2,"altospos.com"', 'PRINT 1', 'END', ]; // you can get all available devices with usb.getDeviceList() let device = usb.findByIds(/*vid*/8137, /*pid*/8214); device.open(); device.interfaces[0].claim(); const outEndpoint = device.interfaces[0].endpoints.find(e => e.direction === 'out'); outEndpoint.transferType = 2; outEndpoint.transfer(Buffer.from(cmds.join('\r\n')), (err) => { device.close(); }); Y el resultado: Tuve que recopilar información pieza por pieza sobre la impresión de etiquetas cuando implementé esta función en el proyecto . Así que escribí este artículo con la esperanza de que sea el punto de partida para alguien en una situación similar. POS e inventario de Alto ¡No a la guerra! ✋🏽