Impressora Zebra TLP 2844: Como integrar seu sistema com a impressora
Veja nesse artigo alguns conceitos de como integrar seu sistema, imprimir em impressoras zebra TLP 2844, exportar a etiqueta para arquivo e editar as configurações.
Muitos programadores iniciantes têm dificuldade de entender como funciona a impressão de etiquetas de código de barras em impressoras térmicas. Neste artigo irei explicar de forma simples como desenhar e enviar comandos para a impressora. O Modelo usado neste exemplo é Zebra TLP 2844.
Primeiro passo é instalar o software ZebraDesigner, no cd-rom que acompanha a impressora. Agora é só configurar as medidas da etiqueta. Clique no menu Arquivo depois em na opção Configuração da etiqueta. Informe a largura e a altura da etiqueta, Margens, número de Linhas e número de colunas.
Agora usando as ferramentas de desenho desenho seu modelo de etiqueta, informado o Nome da Empresa, o código de barras, preço e descrição do produto.
Após desenhar a etiqueta o próximo passo é exportar a etiqueta para arquivo texto. Clique no menu Arquivo e escolha a opção imprimir. Depois marque a opção imprimir para arquivo. Informe o número de etiquetas a serem impressas, para facilitar a configuração informe 3 etiquetas. Escolha uma pasta e dê um nome para o arquivo. Pronto!
O próximo passo agora é editar o arquivo texto gerado. Substituindo o texto fixo por variáveis, neste exemplo irei substituir os textos fixos dos campos por [CODBARRAS], [DESCRICAO] e [PRECO].
Exemplo de arquivo texto gerado antes de ser editado:
Q320,019
q831
rN
S4
D7
ZT
JB
OD
R56,0
N
A105,45,2,3,1,1,N,"110,00"
A219,40,2,1,1,1,N,"A Vista R$"
A227,103,2,2,1,1,N,"CALCINHA DE RENDA"
A146,151,2,3,1,1,N,"12563"
A166,277,2,2,1,1,N,"DEVMEDIA"
B57,154,0,2,2,5,72,N,"123456"
A345,45,2,3,1,1,N,"110,00"
A459,40,2,1,1,1,N,"A Vista R$"
A467,103,2,2,1,1,N,"CALCINHA DE RENDA"
A386,151,2,3,1,1,N,"12563"
A406,277,2,2,1,1,N,"DEVMEDIA"
B297,154,0,2,2,5,72,N,"123456"
A585,45,2,3,1,1,N,"110,00"
A699,40,2,1,1,1,N,"A Vista R$"
A707,103,2,2,1,1,N,"CALCINHA DE RENDA"
A626,151,2,3,1,1,N,"12563"
A646,277,2,2,1,1,N,"DEVMEDIA"
B537,154,0,2,2,5,72,N,"123456"
P1
Arquivo depois de Editado:
// Cabeçalho da Etiqueta
Q320,019
q831
rN
S4
D7
ZT
JB
OD
R56,0
N
// Coluna 1
A105,45,2,3,1,1,N,"[PRECO]"
A219,40,2,1,1,1,N,"A Vista R$"
A227,103,2,2,1,1,N,"[DESCRICAO]"
A146,151,2,3,1,1,N,"[CODBARRAS]"
A166,277,2,2,1,1,N,"DEVMEDIA"
B57,154,0,2,2,5,72,N,"[CODBARRAS]"
// Coluna 2
A345,45,2,3,1,1,N,"[PRECO]"
A459,40,2,1,1,1,N,"A Vista R$"
A467,103,2,2,1,1,N,"[DESCRICAO]"
A386,151,2,3,1,1,N,"[CODBARRAS]"
A406,277,2,2,1,1,N,"DEVMEDIA"
B297,154,0,2,2,5,72,N,"[CODBARRAS]"
// Coluna 3
A585,45,2,3,1,1,N,"[PRECO]"
A699,40,2,1,1,1,N,"A Vista R$"
A707,103,2,2,1,1,N,"[DESCRICAO]"
A626,151,2,3,1,1,N,"[CODBARRAS]"
A646,277,2,2,1,1,N,"DEVMEDIA"
B537,154,0,2,2,5,72,N,"[CODBARRAS]"
// Rodapé da Etiqueta
P1
Observando o arquivo gerado a primeira coluna representa a posição X do campo a ser impresso, variando 240 entre uma etiqueta e outra no exemplo assima comeca com A105 e a próximo A345. Agora entendendo a lógica, fica fácil montar um algorítimo para impressão.
Agora segue abaixo um exemplo de como gerar o arquivo e enviar para impressora:
Var
vetq;
s,c,c1:String;
pi,pf,i:integer;
f:textfile;
begin
vetq := TStringList.create;
vetq.clear;
// Cabeçalho da Etiqueta
vetq.Add('Q320,019');
vetq.Add('q831');
vetq.Add('rN');
vetq.Add('S4');
vetq.Add('D7');
vetq.Add('ZT');
vetq.Add('JB');
vetq.Add('OD');
vetq.Add('R56,0');
vetq.Add('N');
// Coluna 1
vetq.Add('A105,45,2,3,1,1,N,"[PRECO]"');
vetq.Add('A219,40,2,1,1,1,N,"A Vista R$"');
vetq.Add('A227,103,2,2,1,1,N,"[DESCRICAO]"');
vetq.Add('A146,151,2,3,1,1,N,"[CODBARRAS]"');
vetq.Add('A166,277,2,2,1,1,N,"DEVMEDIA"');
vetq.Add('B57,154,0,2,2,5,72,N,"[CODBARRAS]"');
// Coluna 2
vetq.Add('A345,45,2,3,1,1,N,"[PRECO]"');
vetq.Add('A459,40,2,1,1,1,N,"A Vista R$"');
vetq.Add('A467,103,2,2,1,1,N,"[DESCRICAO]"');
vetq.Add('A386,151,2,3,1,1,N,"[CODBARRAS]"');
vetq.Add('A406,277,2,2,1,1,N,"DEVMEDIA"');
vetq.Add('B297,154,0,2,2,5,72,N,"[CODBARRAS]"');
// Coluna 3
vetq.Add('A585,45,2,3,1,1,N,"[PRECO]"');
vetq.Add('A699,40,2,1,1,1,N,"A Vista R$"');
vetq.Add('A707,103,2,2,1,1,N,"[DESCRICAO]"');
vetq.Add('A626,151,2,3,1,1,N,"[CODBARRAS]"');
vetq.Add('A646,277,2,2,1,1,N,"DEVMEDIA"');
vetq.Add('B537,154,0,2,2,5,72,N,"[CODBARRAS]"');
// Rodapé da Etiqueta
vetq.Add('P1');
// substitui as variáveis delimitadas por [] pelo conteúdo do campo
for i:=0 to vetq.count - 1 do
begin
s := etq.strings[i];
pi := pos('[', s);
pf := pos(']', s);
while pi > 0 do
begin
c := copy(s, pi + 1, pf - pi - 1);
c1 := sqlProdutos.FieldByName(c).AsString;
s := StringReplace(s, '[' + c + ']', c1, [rfReplaceAll]);
pi := pos('[', s);
pf := pos(']', s);
end;
vetq.strings[i] := s;
end;
// gera arquivo texto com o conteúdo que será enviado para a impressora
vetq.SaveToFile('c:\etiqueta.txt');
// criar um arquivo .bat para enviar o arquivo texto gerado para a impressora atraves da porta LPT1
// usando o comando type do DOS
if not FileExists('C:\PRINTLBL.BAT') then
begin
AssignFile(F, 'C:\PRINTLBL.BAT');
try
Rewrite(F);
Writeln(F, 'TYPE C:\ETIQUETA.TXT > LPT1');
finally
CloseFile(F);
end
end;
ShellExecute(0, 'Open', PChar('C:\PRINTLBL.BAT'), nil, nil, Ord(SW_HIDE));
// Para usar USB tem que compartilhar a impressora e enviar o arquivo para o compartilhamento
// Ex: Type c:\etiqueta.txt > \\computador\impressora
end;
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo