ola amigos, não estou conseguindo imprimir codigo de barras de 4 digitos, na impressora Zebra TLP 2844, tentei com o compoente ACBrETQ, mais tambem não deu certo, alguem pode me dar um exemplo.
Etq. Codigo De Barras Zebra Tlp 2844
Iniciado por PaulinhoFeix, Aug 24 2010 07:50 AM
6 respostas a este tópico
#1
Adicionado 24 August 2010 - 07:50 AM
#2
Adicionado 24 August 2010 - 09:10 AM
E qual foi o problema ? por favor forneça dados precisos sobre o erro...
#3
Adicionado 24 August 2010 - 10:48 AM
Obrigado pela sua atenção, Daniel Simões.
Bom vamos la, tente varios exemplos mais não tive exito.
1º exemplo:
var
F: TextFile;
i: Integer;
vqtd: Integer;
begin
AssignFile(F, 'LPT1');
Rewrite(F);
Writeln(F, 'N');
Writeln(F, 'Q20,110');
Writeln(F, 'D15');
vqtd := 0;
vqtd := StrToInt(Edit4.Text);
For i := 1 to vqtd do
Begin
Writeln(F, 'A5,8,0,1,1,2,N,Edit1.Text'); <--Nome do Produto
Writeln(F, 'A5,40,0,1,1,2,N,Edit2.Text'); <--Preço
Writeln(F, 'B5,70,0,E30,2,4,70,B,Edit3.Text'); <-- ID do Produto
Writeln(F, 'A290,8,0,1,1,2,N,Edit1.Text');
Writeln(F, 'A290,40,0,1,1,2,N,Edit2.Text');
Writeln(F, 'B290,70,0,E30,2,4,70,B,Edit3.Text');
Writeln(F, 'A570,8,0,1,1,2,N,"TOMATE PAULISTA KG"'); <--Desta forma funciona
Writeln(F, 'A570,40,0,1,1,2,N,"Gs: 15.000"');
Writeln(F, 'B570,70,0,E30,2,4,70,B,"788574520056"'); <--se eu mudar este codigo para 4 digitos não funciona tipo 2001 etc..
End;
Writeln(F, 'P1');
CloseFile(F);
----------------------------------------------------------
2º exemplo:
Var
vetq: TSTringList;
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('A227,103,2,2,1,1,N,"[DESCRICAO]"');
vetq.Add('A105,45,2,3,1,1,N,"[PRECO]"');
vetq.Add('A146,151,2,3,1,1,N,"[CODBARRAS]"');
vetq.Add('B57,154,0,2,2,5,72,N,"[CODBARRAS]"');
// Coluna 2
vetq.Add('A467,103,2,2,1,1,N,"[DESCRICAO]"');
vetq.Add('A345,45,2,3,1,1,N,"[PRECO]"');
vetq.Add('A386,151,2,3,1,1,N,"[CODBARRAS]"');
vetq.Add('B297,154,0,2,2,5,72,N,"[CODBARRAS]"');
// Coluna 3
vetq.Add('A707,103,2,2,1,1,N,"[DESCRICAO]"');
vetq.Add('A585,45,2,3,1,1,N,"[PRECO]"');
vetq.Add('A626,151,2,3,1,1,N,"[CODBARRAS]"');
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 := vetq.strings[i];
pi := pos('[', s);
pf := pos(']', s);
while pi > 0 do
begin
c := copy(s, pi + 1, pf - pi - 1);
c1 := cdsProducto.FieldByName('ID').AsString;
c1 := cdsProducto.FieldByName('PRODUCTO').AsString;
c1 := cdsProducto.FieldByName('PRECIO').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
Desta forma o a impresora só imprime o Codigo.
c := copy(s, pi + 1, pf - pi - 1);
c1 := cdsProducto.FieldByName('ID').AsString;
c1 := cdsProducto.FieldByName('PRODUCTO').AsString;
c1 := cdsProducto.FieldByName('PRECIO').AsString;
s := StringReplace(s, '[' + c + ']', c1, [rfReplaceAll]);
pi := pos('[', s);
pf := pos(']', s);
não sei como fazer esta parte..
----------------------------------------------------------------------------
3º exemplo:
with ACBrETQ do
begin
Modelo := TACBrETQModelo(cbModelo.ItemIndex);
Porta := cbPorta.Text;
Avanco := StrToInt(eAvanco.Text);
Ativar;
ImprimirTexto(orNormal, 2, '1', '2', 0180, 0015, 'BISCOITO REC 335G');
ImprimirTexto(orNormal, 2, '1', '1', 0140, 0015, 'CHOC BRANCO');
ImprimirBarras(orNormal, 'F', '2', '2', 0020, 0010, '7896003701685', 070);
ImprimirTexto(orNormal, 2, '1', '2', 0180, 0315, 'BISCOITO RECH 335G');
ImprimirTexto(orNormal, 2, '1', '1', 0140, 0315, 'CHOC BRANCO');
ImprimirBarras(orNormal, 'F', '2', '2', 0020, 0315, '7896003701685', 070);
ImprimirTexto(orNormal, 2, '1', '2', 0180, 0620, 'BISCOITO RECH 335G');
ImprimirTexto(orNormal, 2, '1', '1', 0140, 0620, 'CHOC BRANCO');
ImprimirBarras(orNormal, 'F', '2', '2', 0020, 0620, '7896003701685', 070);
Imprimir(StrToInt(eCopias.Text));
Desativar;
end;
Desta forma com o compoenete nem executa a impressão
não sei como resolver esta situação.
Obrigado pela atenção
Bom vamos la, tente varios exemplos mais não tive exito.
1º exemplo:
var
F: TextFile;
i: Integer;
vqtd: Integer;
begin
AssignFile(F, 'LPT1');
Rewrite(F);
Writeln(F, 'N');
Writeln(F, 'Q20,110');
Writeln(F, 'D15');
vqtd := 0;
vqtd := StrToInt(Edit4.Text);
For i := 1 to vqtd do
Begin
Writeln(F, 'A5,8,0,1,1,2,N,Edit1.Text'); <--Nome do Produto
Writeln(F, 'A5,40,0,1,1,2,N,Edit2.Text'); <--Preço
Writeln(F, 'B5,70,0,E30,2,4,70,B,Edit3.Text'); <-- ID do Produto
Writeln(F, 'A290,8,0,1,1,2,N,Edit1.Text');
Writeln(F, 'A290,40,0,1,1,2,N,Edit2.Text');
Writeln(F, 'B290,70,0,E30,2,4,70,B,Edit3.Text');
Writeln(F, 'A570,8,0,1,1,2,N,"TOMATE PAULISTA KG"'); <--Desta forma funciona
Writeln(F, 'A570,40,0,1,1,2,N,"Gs: 15.000"');
Writeln(F, 'B570,70,0,E30,2,4,70,B,"788574520056"'); <--se eu mudar este codigo para 4 digitos não funciona tipo 2001 etc..
End;
Writeln(F, 'P1');
CloseFile(F);
----------------------------------------------------------
2º exemplo:
Var
vetq: TSTringList;
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('A227,103,2,2,1,1,N,"[DESCRICAO]"');
vetq.Add('A105,45,2,3,1,1,N,"[PRECO]"');
vetq.Add('A146,151,2,3,1,1,N,"[CODBARRAS]"');
vetq.Add('B57,154,0,2,2,5,72,N,"[CODBARRAS]"');
// Coluna 2
vetq.Add('A467,103,2,2,1,1,N,"[DESCRICAO]"');
vetq.Add('A345,45,2,3,1,1,N,"[PRECO]"');
vetq.Add('A386,151,2,3,1,1,N,"[CODBARRAS]"');
vetq.Add('B297,154,0,2,2,5,72,N,"[CODBARRAS]"');
// Coluna 3
vetq.Add('A707,103,2,2,1,1,N,"[DESCRICAO]"');
vetq.Add('A585,45,2,3,1,1,N,"[PRECO]"');
vetq.Add('A626,151,2,3,1,1,N,"[CODBARRAS]"');
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 := vetq.strings[i];
pi := pos('[', s);
pf := pos(']', s);
while pi > 0 do
begin
c := copy(s, pi + 1, pf - pi - 1);
c1 := cdsProducto.FieldByName('ID').AsString;
c1 := cdsProducto.FieldByName('PRODUCTO').AsString;
c1 := cdsProducto.FieldByName('PRECIO').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
Desta forma o a impresora só imprime o Codigo.
c := copy(s, pi + 1, pf - pi - 1);
c1 := cdsProducto.FieldByName('ID').AsString;
c1 := cdsProducto.FieldByName('PRODUCTO').AsString;
c1 := cdsProducto.FieldByName('PRECIO').AsString;
s := StringReplace(s, '[' + c + ']', c1, [rfReplaceAll]);
pi := pos('[', s);
pf := pos(']', s);
não sei como fazer esta parte..
----------------------------------------------------------------------------
3º exemplo:
with ACBrETQ do
begin
Modelo := TACBrETQModelo(cbModelo.ItemIndex);
Porta := cbPorta.Text;
Avanco := StrToInt(eAvanco.Text);
Ativar;
ImprimirTexto(orNormal, 2, '1', '2', 0180, 0015, 'BISCOITO REC 335G');
ImprimirTexto(orNormal, 2, '1', '1', 0140, 0015, 'CHOC BRANCO');
ImprimirBarras(orNormal, 'F', '2', '2', 0020, 0010, '7896003701685', 070);
ImprimirTexto(orNormal, 2, '1', '2', 0180, 0315, 'BISCOITO RECH 335G');
ImprimirTexto(orNormal, 2, '1', '1', 0140, 0315, 'CHOC BRANCO');
ImprimirBarras(orNormal, 'F', '2', '2', 0020, 0315, '7896003701685', 070);
ImprimirTexto(orNormal, 2, '1', '2', 0180, 0620, 'BISCOITO RECH 335G');
ImprimirTexto(orNormal, 2, '1', '1', 0140, 0620, 'CHOC BRANCO');
ImprimirBarras(orNormal, 'F', '2', '2', 0020, 0620, '7896003701685', 070);
Imprimir(StrToInt(eCopias.Text));
Desativar;
end;
Desta forma com o compoenete nem executa a impressão
não sei como resolver esta situação.
Obrigado pela atenção
#4
Adicionado 24 August 2010 - 11:16 AM
Se for usar o ACBrETQ... primeiro faça testes com o Demo (na pasta Exemplos)...
teste varias opções na "Porta"
teste varias opções na "Porta"
#5
Adicionado 24 August 2010 - 12:14 PM
Daniel Simões, eu usei o demo e fiz varios teste, e não tive exito, so uma pergunta este componente soporta esta impressora?
#6
Adicionado 24 August 2010 - 02:40 PM
Amigo deu certo uma parte, no formato EAN13, funciona perfeita mente, porem quando vou tentar imprimir no formato de 4 digito, não aparece o codigo de barra, como posso resolver isto.
exemplo:
var
F: TextFile;
vqtd, i: Integer;
begin
vqtd := StrToInt(Edit4.Text);
For i := 1 to vqtd do
begin
AssignFile(F, 'LPT1');
Rewrite(F);
Writeln(F, 'N');
Writeln(F, 'Q20,110');
Writeln(F, 'D15');
Writeln(F, 'A5,8,0,1,1,2,N,"' + Edit1.Text + '"'); <--Nome do Produto
Writeln(F, 'A5,40,0,1,1,2,N,"' + Edit2.Text + '"'); <--Preço
Writeln(F, 'B5,70,0,E30,2,4,70,B,"' + Edit3.Text + '"'); <-- ID do Produto o que devo alterar aqui?????
Writeln(F, 'A290,8,0,1,1,2,N,"' + Edit1.Text + '"');
Writeln(F, 'A290,40,0,1,1,2,N,"' + Edit2.Text + '"');
Writeln(F, 'B290,70,0,E30,2,4,70,B,"' + Edit3.Text + '"');
Writeln(F, 'A570,8,0,1,1,2,N,"' + Edit1.Text + '"');
Writeln(F, 'A570,40,0,1,1,2,N,"' + Edit2.Text + '"');
Writeln(F, 'B570,70,0,E30,2,4,70,B,"' + Edit3.Text + '"');
Writeln(F, 'P1');
CloseFile(F);
end;
exemplo:
var
F: TextFile;
vqtd, i: Integer;
begin
vqtd := StrToInt(Edit4.Text);
For i := 1 to vqtd do
begin
AssignFile(F, 'LPT1');
Rewrite(F);
Writeln(F, 'N');
Writeln(F, 'Q20,110');
Writeln(F, 'D15');
Writeln(F, 'A5,8,0,1,1,2,N,"' + Edit1.Text + '"'); <--Nome do Produto
Writeln(F, 'A5,40,0,1,1,2,N,"' + Edit2.Text + '"'); <--Preço
Writeln(F, 'B5,70,0,E30,2,4,70,B,"' + Edit3.Text + '"'); <-- ID do Produto o que devo alterar aqui?????
Writeln(F, 'A290,8,0,1,1,2,N,"' + Edit1.Text + '"');
Writeln(F, 'A290,40,0,1,1,2,N,"' + Edit2.Text + '"');
Writeln(F, 'B290,70,0,E30,2,4,70,B,"' + Edit3.Text + '"');
Writeln(F, 'A570,8,0,1,1,2,N,"' + Edit1.Text + '"');
Writeln(F, 'A570,40,0,1,1,2,N,"' + Edit2.Text + '"');
Writeln(F, 'B570,70,0,E30,2,4,70,B,"' + Edit3.Text + '"');
Writeln(F, 'P1');
CloseFile(F);
end;
#7
Adicionado 24 August 2010 - 02:58 PM
PaulinhoFeix, on 24 August 2010 - 12:14 PM, said:
Daniel Simões, eu usei o demo e fiz varios teste, e não tive exito, so uma pergunta este componente soporta esta impressora?
R2: Use outro tipo de código, EAN13 (obviamente) exige 13 dígitos
1 usuário(s) esta(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)












