Olá pessoal,
Tive alguns problemas para criar rotina para impressão de etiquetas para impressoras térmicas, também vi dúvidas de varias pessoas em outros foruns . Sabendo s que tais impressoras (ARGOX,ZEBRA,ETC) utilizam uma linguagem própria e que a maioria delas fornecem um software próprio para elaboração das etiquetas (BARTENDER,ZEBRA DESIGNER,ETC), resolvi o problema de uma forma simples e estou compartilhando para quem precisar.
A maioria dos programas dispõem de um recurso para impressão da etiqueta em arquivo, usarei como exemplo a impressora zebra zc420t com o software ZEBRA DESIGNER. Segue abaixo o passo a passo.
1 - Crie sua etiqueta usando o software da impressora com imagens, código de barras, e dados, com o cuidado de colocar nome de variáveis nos dados que seram trocados para cada produto.
2 - Imprima e etiqueta usando como saÃda o formato arquivo
3- abra o arquivo gerado pela impressão no mo arquivo ( no meu caso etique.prn ) e para cada produto faça a substituição do valores de cada item pelo nome da variavel gravada no arquivo. conforme parte do código abaixo:
comando:= hb_memoread("etique.prn")
comando:= strtran(comando,"cDESC_PRODUTO",AllTrim(SUBSTR(produtos->nome,1,33)))
comando:= strtran(comando,"cCODIGO_BARRAS",AllTrim(produtos->codbarra))
comando:= strtran(comando,"cVARIAVEL1","Referencia "+AllTrim(produtos->referencia))
comando:= strtran(comando,"cVARIAVEL2",'PREÇO R$ '+TRANSFORM(produtos->venda,"@E 99999.99"))
comando:= strtran(comando,"cVARIAVEL3","TAM "+AllTrim(produtos->tamanho))
comando:= strtran(comando,"P1","P"+AllTrim(Str(Int(vquant))))
GRAVARARQUIVO("etiqtag.prn",comando)
!type etiqtag.prn > &lPorta
A Variavel P1 é a quantidade de etiquetas que deve ser gerada para cada produto lPorta é a porta para qual deve ser enviada a impressão (COM1, LPT1,etc)
OBS, as fontes dos dados variaveis deve ser usado a fonte da propria impressora nesse exemplo usei ZEBRA1
Segue em anexo imagens para enteder melhor o exemplo, como também o arquivo prn que foi gerado e o pedaço de codigo com a função GRAVARARQUIVO
Quaquer dúvida é só perguntar
[