Ir para conteúdo
  • Cadastre-se

dev botao

Setar Modelo Impressora (fora do arquivo INI)


LuizLima
Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 1610 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Caros, bom dia

Tenho um cliente com duas impressoras ligadas na mesma máquina, uma Zebra e uma Argox.

Existe a possibilidade de mudar o modelo da impressora via comandos?

Outra pergunta: Como configuro o tamanho da etiqueta? Por exemplo: 3,5cm x 3,0cm

Tentei o comando SetModelo mas não deu certo, vejam a tela do LOG por favor.

Alguma sugestão?

image.thumb.png.5d9011c0df26eb838b95f6cf988db048.png

Editado por LuizLima
Link para o comentário
Compartilhar em outros sites

  • Moderadores
2 horas atrás, LuizLima disse:

Existe a possibilidade de mudar o modelo da impressora via comandos?

Boa tarde

Não existe esse comando... A alteração do modelo pode exigir alteração naas demais configurações, por isso não é parametrizável via comando, mas se desejar pode editar diretamente o arquivo de configuração  ACBrMonitor.ini e recarregar as configurações através do método https://acbr.sourceforge.io/ACBrMonitor/ACBrlerini.html

Para editar este campo no ACBrMonitor.ini, precisa alterar o valor na Seção:

[ETQ]
Modelo=1

2 horas atrás, LuizLima disse:

Outra pergunta: Como configuro o tamanho da etiqueta? Por exemplo: 3,5cm x 3,0cm

Impressoras de Etiquetas térmicas não trabalham com tamanho de etiqueta, o tamanho é lido pelo sensor da impressora, então só precisa passar a orientação de onde imprimir para cada método enviado ex: 

https://acbr.sourceforge.io/ACBrMonitor/ETQImprimirLinha.html

Consultor SAC ACBr

José Junior
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

José,

Os valores abaixo são em Milimetros (se eu informar no campo Unidade etqMilimetros)?

Se eu for imprimir 3 etiquetas na horizontal, como devo configurar então?

Parâmetros:

nVertical - Valor para posição Vertical

nHorizontal - Valor para posição Horizontal

nLargura - Valor para Largura da linha

nAltura - Valor para altura da linha

 

Veja em anexo uma imagem com o modelo da etiqueta por favor:

 

 

Exemplos:

ETQ.ImprimirLinha( 13, 32, 56, 17)

etiqueta_3_colunas.jpg

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Pode configurar a unidade de medida, por padrão é em milímetros.

Neste modelo passe os parâmetros com a orientação para as três etiquetas, ou seja cada uma delas com posições diferentes (Precisa ir corrigindo as medidas)

por ex:

ETQ.Ativar()

ETQ.IniciarEtiqueta()

ETQ.ImprimirTexto( "0", "2", "2", "1", "8", "3", "CHOC BRANCO")         //etiqueta coluna 1

ETQ.ImprimirTexto( "0", "2", "2", "1", "8", "32", "CHOC BRANCO")          //etiqueta coluna 2

ETQ.ImprimirTexto( "0", "2", "2", "1", "8", "61", "CHOC BRANCO")          //etiqueta coluna 3

ETQ.FinalizarEtiqueta()

ETQ.Imprimir( "1", "0" )

ETQ.Desativar()

 

  • Obrigado 1
Consultor SAC ACBr

José Junior
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

José, muito obrigado

Posso enviar todos comandos de uma vez para o monitor ou preciso rodar um comando por vez?

Outra questão é:

Preciso rodar as configurações antes? 

Estaria correto fazer dessa forma abaixo?

ETQ.SetPorta("c:\temp\teste_etiq.txt");
ETQ.SetTemperatura("8");
ETQ.SetVelocidade("-1");
ETQ.SetBackFeed("0");
ETQ.SetLimparMemoria("false");
ETQ.Ativar();
ETQ.IniciarEtiqueta();
ETQ.ImprimirTexto( "0", "2", "2", "2", "3", "3", "BISCOITO MARILAN RECH 335G", "0", "1" );
ETQ.ImprimirTexto( "0", "2", "2", "1", "8", "3", "CHOC BRANCO");
ETQ.ImprimirBarras( "0", "0", "2" , "2", "13", "5", "7896003701685", "10", "1");
ETQ.ImprimirCaixa( "13", "32", "56", "17", "1", "1");
ETQ.ImprimirTexto( "0", "3", "3", "2", "18", "35", "R$");
ETQ.ImprimirTexto( "0", "3", "4", "4", "15", "50", "20,59");
ETQ.FinalizarEtiqueta();
ETQ.Imprimir( "1", "0" );
ETQ.Desativar();
 

Link para o comentário
Compartilhar em outros sites

Está correto enviar esses comandos abaixo antes do Ativar?

ETQ.SetPorta("c:\temp\teste_etiq.txt");
ETQ.SetTemperatura("8");
ETQ.SetVelocidade("-1");
ETQ.SetBackFeed("0");
ETQ.SetLimparMemoria("false");

Estou usando uma estratégia para testar: Uso a ZPL como modelo e gravo em arquivo texto.

Com isso posso testar no http://labelary.com/viewer.html

Mas até agora não consegui sucesso em nenhuma geração do arquivo TXT.

Abs

Link para o comentário
Compartilhar em outros sites

  • Fundadores
  • Solution

Os componentes do ACBr tentam justamente gerar esse arquivo de comandos... mas não há como enviar os comandos já montados, para o componente repassar para a Impressora...

O Correto é você Ativar o componente, antes de tudo... pois os comandos de configuração, podem tentar a comunicação com a impressora.

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

Rodei os comandos nessa ordem, mas não acata a minha porta.

ETQ.Ativar()
ETQ.SetPorta("c:\temp\teste_zpl.txt")
ETQ.SetTemperatura("8")
ETQ.SetVelocidade("-1")
ETQ.SetBackFeed("0")
ETQ.SetLimparMemoria("false")
ETQ.IniciarEtiqueta()
ETQ.ImprimirTexto( "0", "2", "2", "2", "3", "3", "BISCOITO MARILAN RECH 335G", "0", "1" )
ETQ.ImprimirTexto( "0", "2", "2", "1", "8", "3", "CHOC BRANCO")
ETQ.ImprimirBarras( "0", "0", "2" , "2", "13", "5", "7896003701685", "10", "1")
ETQ.ImprimirCaixa( "13", "32", "56", "17", "1", "1")
ETQ.ImprimirTexto( "0", "3", "3", "2", "18", "35", "R$")
ETQ.ImprimirTexto( "0", "3", "4", "4", "15", "50", "20,59")
ETQ.FinalizarEtiqueta()
ETQ.Imprimir( "1", "0" )
ETQ.Desativar()

Link para o comentário
Compartilhar em outros sites

O comando um por vez vai ficar muito lento, meu cliente não vai aceitar de forma alguma:

Rodei os comandos nessa ordem, mas gera meu arquivo vazio.

ETQ.Ativar()
ETQ.IniciarEtiqueta()
ETQ.ImprimirTexto( "0", "2", "2", "2", "3", "3", "BISCOITO MARILAN RECH 335G", "0", "1" )
ETQ.ImprimirTexto( "0", "2", "2", "1", "8", "3", "CHOC BRANCO")  
ETQ.FinalizarEtiqueta()
ETQ.Imprimir( "1", "0" )
ETQ.Desativar()
 

Veja o arquivo INI e log das etiquetas:

image.png.240686d2ff3880757eff0ff02f1cc133.png

 

 

 

 

image.png

etq.txt LOG.TXT

Link para o comentário
Compartilhar em outros sites

  • Fundadores
5 minutos atrás, LuizLima disse:

O comando um por vez vai ficar muito lento, meu cliente não vai aceitar de forma alguma:

é como o ACBrMonitorPLUS funciona...

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

Não irá causar lentidão enviar linha a linha... usamos assim na DJSystem, a anos e anos...

Depende muito, é claro, de como você escreve a rotina de comunicação...

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,

Não entendi muito bem a frase "Depende muito, é claro, de como você escreve a rotina de comunicação..."

Trabalho com VB.net e estou utilizando TCP/IP, atualmente uso o SAT pelo Monitor e é bem rápido.

Segue anexo meu código das funções de envio ao Monitor, poderia dar uma olhada por favor?

OBS: Achei sensacional os comando do ETQ, pela primeira vez encontrei um wrapper decente para etiquetas.

Abs

 

ACBR_CLASSES.txt

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Esse Sleep não é legal... causa uma lentidão desnecessária a cada leitura

Threading.Thread.Sleep(1500)

o correto seria você ficar em um Loop, lendo dados, até chegar o ETX ou atingir N segundos de espera... (N é o tempo de Timeout),

Já viu os exemplos disponíveis ?

http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrMonitorPLUS/Lazarus/Exemplos/

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
45 minutos atrás, LuizLima disse:

As vezes o loop pode causar sobrecarga no canal, mas você tem razão mesmo.

Realmente... o ideal é ter um Sleep(10), dentro do Loop, para evitar picos de cpu

  • Curtir 1
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

×
×
  • 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.