As impressoras de etiquetas podem suportar linguagens de programação como TSPL, ZPL, EPL e assim por diante. Hoje vamos fazer uma visão geral da linguagem TSPL. Podemos construir etiquetas usando comandos TSPL como , e . Por exemplo, se queremos imprimir uma etiqueta com texto e código de barras, usamos esses comandos com suas propriedades como posição ou tamanho e enviamos esses comandos para a impressora de etiquetas por Bluetooth ou conexão serial. TEXT BARCODE QRCODE No lado esquerdo, você pode ver os comandos TSPL e a etiqueta impressa no lado direito. Você pode encontrar todos os comandos disponíveis , mas vamos ver alguns deles para entender como usar o TSPL. aqui Coordenadas e tamanho em pontos Seja um , ou , geralmente as coordenadas e o tamanho são em pontos. O número de pontos por polegada depende do DPI da impressora. TEXT BARCODE BITMAP Por exemplo, se a impressora estiver 203 DPI → significa que há 203 pontos em uma polegada ou 8 pontos em 1 mm. 300 DPI → significa que há 300 pontos em uma polegada ou 11,8 pontos em 1 mm. De acordo com isso, se quisermos adicionar um código de barras com altura de 10 mm e a impressora for 203DPI, devemos definir a altura como (10 mm x 8 = 80 pontos). 80 Tamanho e folga da etiqueta Precisamos informar à impressora o tamanho da etiqueta assim: SIZE 4,1 Aqui dissemos que o tamanho da etiqueta é 4x1 polegadas. Também podemos configurá-lo em um sistema métrico (mm): SIZE 50 mm,25 mm Podemos definir o intervalo que é o espaço entre os rótulos ( ). GAP m,n GAP 0,0 Aqui, a lacuna é de zero polegadas, o que significa que é uma etiqueta contínua. Texto Podemos usar o comando para imprimir um texto na etiqueta. Podemos fornecer a posição, tamanho da fonte, rotação e assim por diante: TEXT TEXT x,y,“font”,rotation,x-multiplication,y-multiplication,[alignment,] “content” Parâmetro Descrição x, y coordenada x e y Fonte Geralmente, podemos definir 1-8 (1-pequeno, 2-maior… 8-maior) rotação 0, 90, 180, 270 no sentido horário x e y-multiplicação Fator de escala 1-10 alinhamento 1-esquerda, 2-centro, 3-direita (opcional) contente conteúdo de texto Exemplos de comandos 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 adicionar um código de barras à etiqueta com o comando : BARCODE BARCODE X,Y,”code type”,height,human-readable,rotation,narrow,wide,[alignment,]”content” Parâmetro Descrição x, y coordenada x e y tipo de código 128, EAN128, EAN13… altura Altura em pontos legível por humanos 0 - o valor do código de barras (texto) não é visível 1 - o texto é alinhado à esquerda 2 - alinhado ao centro 3 - alinhado à direita rotação 0, 90, 180, 270 no sentido horário estreito Largura do elemento estreito em pontos largo Largura do elemento largo em pontos alinhamento 1-esquerda, 2-centro, 3-direita (opcional) contente Conteúdo do código de barras Exemplos 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 e FIM Depois de construir a etiqueta, precisamos informar à impressora que a etiqueta está pronta para ser impressa. Usamos o comando para fazer isso: PRINT m[,n] Comandos Descrição 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 - Defina o tamanho da etiqueta - Limpe o buffer - Adicione texto - Imprima o buffer uma vez - Limpe o buffer - Adicione texto - Imprima o buffer duas vezes - Fim do programa Imprime três etiquetas; uma etiqueta com “Texto 1” e duas etiquetas com “Texto 2”. Adicionamos o comando no final, para informar à impressora que terminamos de imprimir. Sem esse comando, a impressora pode não imprimir a última imagem no buffer. END Imprimindo com JavaScript (Node.js) Os comandos gerados podem ser enviados para a impressora via Serial ou Bluetooth. Para demonstrar isso, criei um código simples usando Node.js. Usei o pacote ' ' para conectar e enviar os comandos (No Windows, pode ser necessário instalar um driver, ). usb para saber mais visite a página do pacote 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(); }); E o resultado: Tive que reunir informações peça por peça sobre a impressão de etiquetas quando implementei esse recurso no projeto . Então, escrevi este artigo na esperança de que seja o ponto de partida para alguém em uma situação semelhante. POS & Inventory da Alto Sem guerra! ✋🏽