Ir para conteúdo
  • Cadastre-se

dev botao

AcbrETQ Texto da fonte desconfigurado na imp ZEBRA


Marcelo Bill
  • Este tópico foi criado há 2221 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Daniel Boa noite

Obrigado por responder

As alterações não foram satisfatórias. Não tenho muito tempo pra descobrir as coisas, pois como sabe, preciso testar isso durante o expediente comercial do cliente e mesmo assim, se demoro muito conectado com ele, acabo atrapalhando.

Porém pela glória do Divino, tenho um outro cliente que tem duas Zebras. Uma em uso e outra de backup. Pedi a ele a impressora emprestada. A mesma chegará aqui na quinta Feira.

Ai sim, vou acertar as coisa no componente pra que fique de forma adequada em todas as funções que correspondem a AcbrETQZplII.

Hoje comecei a configurar as medidas la no cliente, depois de ter atualizado hoje de manhã.

as Fontes de 1 a 8, praticamente não aparecem. A 9 tem mais ou menos 2 mm de altura. (Mas até ai, é problema da impressora)

Seguindo as mesmas medidas, percebi que diferentemente do PPLA, quando coloquei que o tamanho da etiqueta era 500 (correspondente a 50 mm), ele não estava com a mesma correspondencia, tive que informar 450 para equivaler a etiqueta (50mm)

Ou seja, em algumas funções estão de uma forma e em outras de outra forma.

Mas não mexa nisso por minha causa. Vamos esperar chegar a impressora (que é novinha) e então vou fazer todos os testes possíveis para tentar ajudar na melhoria das configurações desse componente.

Preciso desse componente em especial (bem redondinho), pois de agora em diante vou começar a apontar essa Marca para os clientes adquirirem.

Devido o sistema de cabeça de impressão da Zebra ser recuado, isso evita a perda de etiqueta assim como na argox. Vi isso mas ainda preciso confirmar essa informação.

por hora é só

abraço boa noite

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Eu realmente não tenho como testar de forma avançada, pois não tenho esse equipamento...

Por favor, fique a vontade para sugerir modificações nos fontes... (basta anexá-los)

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Daniel boa noite.

Encontrei a primeira divergência no acbrETQZPLII.pas

Em TacbrETQZPLII.ComandoFonte

Voce está bloqueando a funcionalidade criando uma Exception onde Caso o cFonte não esteja dentro de ['0'..'9','A'..'Z']
Porem, no AcbrETQ.ImprimirTexto voce está mandando, quando a fonte for >=10, 
cFonte := Chr(55+Fonte)                      //'A'..'Z'
Bom, se usei uma fonte 15 por exemplo, o cFonte teria o resultado de Chr(55+15)= Chr(70) = 'F', ou seja, está dentro de A..Z, mas não entendi porque a Excepion foi disparada;

Então eu desabilitei as linhas

  if (aMultVertical > 10) then
    raise Exception.Create('Multiplicador Vertical deve estar entre 1 e 10');

  if (aMultHorizontal > 10) then
    raise Exception.Create('Multiplicador Horizontal deve estar entre 1 e 10');

  cFonte := PadLeft(aFonte,1,'A')[1];

  //if not CharInSet(cFonte, ['0'..'9','A'..'Z']) then
  //  raise Exception.Create('Fonte deve "0" a "9" e "A" a "Z"');

  Result := '^CF' + cFonte +
                   IntToStr(Max(aMultVertical,1))     + ',' +
                   IntToStr(Max(aMultHorizontal,1));
 

Depois disso deu certo, está imprimindo como se fosse a letra "F" ou se eu colocar a Fonte =10(A), 11(B), 12(C), 13(D), 14(E), 15(F) etc...

Agora, estou tentando descobrir por que, usando o etqMilimetro, exemplo Vertical=2 ele imprime a 4 milimetros do topo da etiqueta e horizontal=3 ele imprime a 6 milimetros da esquerda da etiqueta;

Outra coisa, eu determino o Tamanho da Etiqueta, assim como minha etiqueta tem 50x30 (mm), ou seja é uma variavel que informo 50, pois no caso de 2 colunas, a posição inicial da coluna à direita, deveria ser de 50(mm)+Horizontal=3(mm). Mas essa configuração manda a coluna da direita pra bem longe.

estou ainda analisando o caso

mais tarde informo mais outras situações.

 

 

Link para o comentário
Compartilhar em outros sites

Daniel boa tarde

É o seguinte, depois muito testes, cheguei a conclusão:

a- Melhor resolução para Zebra ZPLII é 600 dpi, pois as demais, o componente não consegue acompanhar a qualidade principalmente no tange o código de barras;
b- Nessa resolução, a etqMilimetros funciona adequadamente, já nas demais resoluções, se voce define 1 mm ela não corresponde na impressão; 
c- Conforme o último post, não consegui resolver, a solução foi desabilitar, voce seria mais capaz do que eu pra pensar nesse caso (obs*)

obs*: o acbrEtq tem duas funções ImprimirTexto, uma recebe Fonte:Integer, a outra recebe Fonte:String, no meu caso, eu mandei a Fonte=10 ou 11 etc, ai bate na exception,

Link para o comentário
Compartilhar em outros sites

Daniel boa tarde

É o seguinte, depois muito testes, cheguei a conclusão em relação a AcbrEtqZplII.Pas:

a- Melhor resolução para Zebra ZPLII é 600 dpi, pois as demais, o componente não consegue acompanhar a qualidade principalmente no tange o código de barras;
b- Nessa resolução, a etqMilimetros funciona adequadamente, já nas demais resoluções, se voce define 1 mm ela não corresponde na impressão; 
c- Conforme o último post, não consegui resolver, a solução foi desabilitar, voce seria mais capaz do que eu pra pensar nesse caso (obs*)

obs*: o acbrEtq tem duas funções ImprimirTexto(ComandoFonte), uma recebe Fonte:Integer, a outra recebe Fonte:String, no meu caso, eu mandei a Fonte=10 ou 11 etc, ai bate na exception, quando eu mando Fonte='10' ou '11', passa pela exception porém a impressora não acata a fonte como A, B, C, etc., ela imprime sem com a Fonte A;

d- Em relação a altura da Barra, na função ComandoBarras, eu removi a ConverterUnidade deixando apenas IntToStr(aAlturaBarras) + ',' + e funcionou perfeitamente;
e- Em relação a Função ComandoLinhaCaixa, também removi todas as ConverterUnidade deixando o valor originale funcionou de acordo, no entanto, a espessura Horizonta e vertical, deixei com 0 (zero) e ainda ficou grossa conforme a imagem.

Se quiser fazer algo para que eu possa testar aqui é só avisar. Estarei com a impressora Zebra S4M até sexta feira.

Etq_ZPLii.png

Link para o comentário
Compartilhar em outros sites

Ultimo detalhe, em relação a posição Vertical (linha) está perfeito, se informo que quero que seja impresso a 2mm do topo ele corresponde, com relação Horizontal, se informo que quero que seja impresso a 6mm da Esq, ele imprime a 12mm, ou seja, ele ta dobrando a medida. Fiz a gambiarra e dividi por 2 todas as informações que se referem a medida horizontal. Isso inclui todos os tipos que envolvem essa medida.

Mas não vou disponibilizar minha aplicação dessa forma, vou aguardar suas possíveis correções. Se não conseguirmos fazer funcionar onde mm vale mm, então manteremos as RTIs (Recurso Técnico improvisado)

Abraço 

Link para o comentário
Compartilhar em outros sites

Em 22/01/2018 at 09:58, Daniel Simoes disse:

Estou analisando a questão...

Boa noite Daniel

Só lembrando, eu estou com uma S4M da zebra aqui comigo, ganhei mais uma semana pra ficar com ela.

Se te interessar, posso ir até Tatui e levar a impressora pra voce testar o que precisar... O que voce acha ?

O único problema é que não posso deixar a impressora com voce, no máximo, posso levar, deixar ai com voce durante o dia todo, dormirei em Tatui e no dia seguinte talvez o dia todo também. Digo isso porque estou no Vale do Paraíba a 300km.

Estou a sua disposição.

Se concordar com isso, na terça-feira dia 30 estarei ai.

abraço

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Tenho alguns compromissos essa semana... infelizmente estou conseguindo pouco tempo para me dedicar a isso..

Preciso de uma impressora desse modelo, de forma permanente, para testes no futuro... estou providenciando a compra de uma...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Pelo que li desse modelo de impressora, ela é compatível com EPL... Verificou se a impressão da etiqueta, fica correta, usando etqEpl2 ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Estou revendo os fontes, e as rotinas de calculo de conversão de Milímetros para Dots e Polegadas.. Parece estar funcionando OK

        ImprimirTexto(orNormal, '0', 60, 60, 3, 3, 'BISCOITO MARILAN RECH 335G', 0, True);
        ImprimirTexto(orNormal, '0', 60, 60, 8, 3, 'CHOC BRANCO');
        ImprimirBarras(orNormal, barEAN13, 2, 2, 13, 5, '7896003701685', 12, becSIM);
        ImprimirTexto(orNormal, 'A', 100, 100, 18, 32, 'R$');
        ImprimirTexto(orNormal, 'A', 120, 120, 15, 50, '20.59');   

image.png

Preciso revisar os modelos PPLA e PPLB, para ver se não quebrei nada....

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Por favor teste com os fontes em anexo... nos meus testes, PPLA, PPLB e ZLP2, respeitaram corretamente a medida em Milímetros

Também ajustei o Demo, para sempre enviar a medida em Milímetros...

ACBrSerial.zip

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Após meus testes nas impressoras que temos e no emulador online... decidi subir as modificações para o SVN

Citar

-- ACBrETQClass, ACBrETQPpla --
[-] Correção em TACBrETQClass.ConverterUnidade, para correta conversão de
    Milímetros para Dots

-- ACBrETQZplII --
[-] Método: TACBrETQZplII.ComandoFonte. Correção na verificação dos limimtes de
    multiplicador Horizontal e Vertical
[*] Método: TACBrETQZplII.ComandoResolucao, modificado para não tentar mudar a
    resulução da Impressora
    (por: DSA)

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Teve uma alteração na unit da etiqueta PPLA que deu errado aqui pra mim, não sei se essa alteração foi feita por esse tópico, mas ficou assim:

na revisão 14564 veio uma alteração nessa procedure que ficou assim:

function TACBrETQPpla.ConverterUnidade(AValue: Integer): Integer;
begin
  if (Unidade = etqDots) then
    Result := inherited ConverterUnidade(etqMilimetros, AValue);

  Result := AValue * 10;

  if (Unidade = etqPolegadas) then
    Result := Result * 10;
end;

na versão anterior era assim:

function TACBrETQPpla.ConverterUnidade(AValue: Integer): Integer;
begin
  Result := AValue;
  if (Unidade <> etqDots) then
    Exit;

  Result := inherited ConverterUnidade(etqMilimetros, AValue);
end;

estou mandando em anexo como ficou a impressão no meu cliente. voltei pra versão anterior e voltou a funcionar normalmente.

 

WhatsApp Image 2018-02-01 at 17.52.55.jpeg

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Por favor faça um teste com o Demo... ou informe o comando que você está enviando para a impressora...

Pode ser que o comando anterior que você usava, estava com medidas erradas... (pois o componente estava convertendo de forma errada)

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Pelo que notei... "estava tudo cagado"...

Agora parece que PPLA e PPLB estão respeitando corretamente as medidas em milímetros...  Por favor faça um teste com o Demo, e me dê um feedback

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Bom dia aTodos
Daniel

Me perdoe na demora da resposta. Estive meio acamado. 
hoje estou testando aquela ACBrSerial.zip que voce postou 
aqui e disse inclusive que o demo também estava corrigido 
de acordo com o teste online da ZPLII.


Putz, agora ferrou de vez. 
não testei ainda a PPLA.

Com relação a impressora Zebra S4M, digo que ela realmente 
não é compativel com EPL2 em nenhuma das resoluções.
Fiz o teste com o proprio Demo.

ZPLII pra conseguir imprimir alguma coisa, tive que criar
variaveis de fator de multiplicação pra chegar no milimetro
desejado. Exemplo:

    aConversaoW   :=0.3500; (50mm * 0.3500) corresponde a largura da etiqueta
    aConversaoH   :=0.3450; (3mm * 0.3450) corresponde 3mm da esquerda da etiqueta
    aConversaoV   :=0.3900; (3mm * 0.3900) corresponde 3mm do topo da etiqueta
    aConversaoB   :=0.4270; (7mm * 0.4270) corresponde 7mm da Altura da barra

Mas eu fiz isso só pra tentar ajudar a encontrar o problema, por favor, NÃO siga
essas medidas pra fazer quisquer conversões, pois mesmo com essas funcionando,
caso eu mude um linha ou outra, dê um espaço maior ou menor entre uma linha e outra,
as conversões já não seguem da mesma forma.

Na ZPLII também testei com o demo e deu o mesmo problema.

Só lembrando, ainda estou com a S4M e tenho uma Argox OS214-Plus,
ainda estou à sua disposição se quisermos resolver isso de vez.
De outra forma, vou manter a Unit como estava antes dessas Units que voce
postou aqui.

Ou quem sabe, desistir do milimetro e mudar toda minha aplicação para Polegada.
O problema é que vou ter que praticamente criar a etiqueta pra cada usuário,
coisa que eu desejei evitar quando desenvolvi esse Construtor de etiquetas.

Tenho dois sistemas, em cada sistema tenho aprox 22 modelos de etiqueta diferente,
por isso desenvolvi esse Construtor para que esses modelos sejam tratados como
registros no banco de dados e cada usuário pode se adequar àquele que melhor
lhe convir ou criar seu proprio modelo.
 

abraço

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Verifique se você configurou a unidade corretamente...

Nos meus testes com o Demo, no Emulador da Zebra... está tudo ok...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Daniel

Veja se entende o que estou fazendo

Figura1:

Largura de cada Etiqueta 50mm
2 Colunas
Largura entre as etiquetas 3mm
Codigo=Config do Campo Codigo que convertendo seria ImprimirTexto(ONormal, Fonte, FonteH, FonteV, LinhaV(mm), ColunaH(mm), CODIGO, 0);

Figura2:
Assim vou mostrar que mesmo colocando na Linha(1), Coluna(2), ele dá uma diferença de 7mm

Figura3:
Com aquelas conversões eu consigo fazer isso, mas não etá seguro, varia muito se eu mexer em tamanho, espaços etc.

Figura4:
Usando o Demo, voce mandou na Linha(60), Coluna(60), o que na realidade ficou com 10(mm) da esquerda e 8mm do topo da etiqueta. Config no Demo EtqMilimetro

figura1.PNG

Figura2.jpeg

Figura3.jpeg

Figura4.jpeg

Link para o comentário
Compartilhar em outros sites

12 minutos atrás, marcelonarezzi disse:

Daniel

Veja se entende o que estou fazendo

Figura1:

Largura de cada Etiqueta 50mm
2 Colunas
Largura entre as etiquetas 3mm
Codigo=Config do Campo Codigo que convertendo seria ImprimirTexto(ONormal, Fonte, FonteH, FonteV, LinhaV(mm), ColunaH(mm), CODIGO, 0);

Figura2:
Assim vou mostrar que mesmo colocando na Linha(1), Coluna(2), ele dá uma diferença de 7mm

Figura3:
Com aquelas conversões eu consigo fazer isso, mas não etá seguro, varia muito se eu mexer em tamanho, espaços etc.

Figura4:
Usando o Demo, voce mandou na Linha(60), Coluna(60), o que na realidade ficou com 10(mm) da esquerda e 8mm do topo da etiqueta. Config no Demo EtqMilimetro

figura1.PNG

Figura2.jpeg

Figura3.jpeg

Figura4.jpeg

desculpa disse 60,60 quando deveria dizer 3,3
pelo que entendi voce determinou que seria 3mm da esquerda e 3mm do topo no caso do Biscoito, o que mesmo assim da essa diferença grande

Link para o comentário
Compartilhar em outros sites

Daniel

Me desculpa por não ser um gênio e não ter capacidade corrigir o problema no componente.

A única coisa que posso dizer pra ajudar é que aparentemente o problema está 
ACBrETQClass.ConverterUnidade (entre calculos) que reflete diretamente em ACBrETQZPLII.ComandoCoordenadas

assim como existe a diferença quando determino 3mm da esquerda e ela imprime a 10mm, existe também a definição da largura da etiqueta, pq se voce perceber na figura2, a segunda etiqueta lateral sai totalmente em branco, quando deveria ser preenchida conforme minha impressão.
Sendo assim, em todas as functions que contenha aHorizontal e ou aVertical deve passar por essa conversão acredito eu.

ImprimirTexto, ImprimirBarra, LinhaCaixa, ImrimirImagem, etc..

 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2221 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.