Fórum Linguagem EPL-2 - Zebra TLP 2844 #283522

31/05/2005

0

Srs, algum de vcs sabem como utilizar a linguagem EPL utilizada nas impressoras de código de barras ZEBRA TLP 2844? Preciso desenvolver uma aplicação que gere uma etiqueta com códigos de barras para serem impressas nesta impressora. Não sei nem por onde começar, adoraria se alguém pudesse me dar uma dica.

Programalista.


Programalista

Programalista

Responder

Post mais votado

31/05/2005

Colega,

Utilizo o seguinte código para imprimir etq de código de barras, 3 carreiras, em impressoras zebra:

Como vc poderá notar utilizo o componeente TComport para cominicação com a zebra. Utilizo um string grid onde é adicionados os produtos e qtd que o usuário deseja imprimir.

[/code]
procedure TfrmEtiquetas.EtiquetaProdutoBarrasSerial;
var
Qtd, i: Integer;
begin
ComPort1.Open;
for i := 1 to stringgrid1.rowcount - 1 do
begin
if stringgrid1.Cells[3, i] <> EmptyStr then
begin
if TipoImpressoraEtq = ´ZEBRA´ then
begin
ComPort1.WriteStr(´^XA´);
Qtd := Trunc(strtoint(stringgrid1.Cells[3, i]) / 3);
if Qtd < 3 then
Qtd := 3;
ComPort1.WriteStr(´^PQ´ + Trim(IntToStr(Qtd)) + ´,,,N´);
ComPort1.WriteStr(´^FO05,30^ADN,20,01^FD´ +
AbreviaNome(Trim(stringgrid1.Cells[2, i])) + ´^FS´);
ComPort1.WriteStr(´^FO30,60^BY2,,100^BEN,080,Y,N^FD´ +
stringgrid1.Cells[1, i] + ´^FS´);
ComPort1.WriteStr(´^FO283,30^ADN,20,01^FD´ +
AbreviaNome(Trim(stringgrid1.Cells[2, i])) + ´^FS´);
ComPort1.WriteStr(´^FO308,60^BY2,,100^BEN,080,Y,N^FD´ +
stringgrid1.Cells[1, i] + ´^FS´);
ComPort1.WriteStr(´^FO563,30^ADN,20,01^FD´ +
AbreviaNome(Trim(stringgrid1.Cells[2, i])) + ´^FS´);
ComPort1.WriteStr(´^FO588,60^BY2,,100^BEN,080,Y,N^FD´ +
stringgrid1.Cells[1, i] + ´^FS´);
ComPort1.WriteStr(´^XZ´);
end;
end;
end;
ComPort1.Close;
LimparGrid;
end;


função abrevia nome utilizada no exemplo:


function AbreviaNome(Nome: string): string;
var
Nomes: array[1..20] of string;
i, TotalNomes: Integer;
begin
Nome := Trim(Nome);
Result := Nome;
{Insere um espaço para garantir que todas as letras sejam testadas}
Nome := Nome + #32;
{Pega a posição do primeiro espaço}
i := Pos(32, Nome);
if i > 0 then
begin
TotalNomes := 0;
{Separa todos os nomes}
while i > 0 do
begin
Inc(TotalNomes);
Nomes[TotalNomes] := Copy(Nome, 1, i - 1);
Delete(Nome, 1, i);
i := Pos(32, Nome);
end;
if TotalNomes > 2 then
begin
{Abreviar a partir do segundo nome, exceto o último.}
for i := 2 to TotalNomes - 1 do
begin
{Contém mais de 3 letras? (ignorar de, da, das, do, dos, etc.)}
if Length(Nomes[i]) > 3 then
{Pega apenas a primeira letra do nome e coloca um ponto após.}
Nomes[i] := Nomes[i][1] + ´.´;
end;
Result := ´´;
for i := 1 to TotalNomes do
Result := Result + Trim(Nomes[i]) + #32;
Result := Trim(Result);
end;
end;
end;



Lindomar.des

Lindomar.des
Responder

Gostei + 1

Mais Posts

01/06/2005

Programalista

Ok, muito obrigado Lindomar.

Sua dica já foi de grande ajuda, vou desenvolver e qualquer outra dúvida eu posto aqui.

Valeu.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar