Ir para conteúdo
  • Cadastre-se

dev botao

ACBrSat+ACBrExtratoFortes imprimindo na impressora padrão ou na ultima impressora que foi utilizada


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

Recommended Posts

Postado

Olá, Boa Tarde.

Pessoal, eu já li o tópico abaixo antes de criar esse novo, porém não consegui resolver o problema ainda.

Seguinte, sempre que mando uma impressão Sat pelo ACBrExtratoFortes, ele desconsidera as informações que defino para a impressora, e manda a impressão na impressora padrão.

Desse modo tenho que deixar a impressora como padrão do computador.

Recentemente o que está me ocorrendo também, é que quando imprimo um etiqueta pelo ACBrETQ, as próximas impressões do Sat saem na impressora de etiqueta.

 

Segue abaixo o código para imprimir SAT:

LarguraBobina                  := StrToInt(Ini.ReadString('IMPRESSORA', 'LARGURA', ''));
MargemSuperior               := StrToInt(Ini.ReadString('IMPRESSORA', 'MARGEM_CIMA', ''));
MargemInferior                 := StrToInt(Ini.ReadString('IMPRESSORA', 'MARGEM_BAIXO', ''));
MargemEsquerda             := StrToInt(Ini.ReadString('IMPRESSORA', 'MARGEM_ESQ', ''));
MargemDireita                  := StrToInt(Ini.ReadString('IMPRESSORA', 'MARGEM_DIR', ''));
Imp                                    := Ini.ReadString('IMPRESSORA', 'PORTA', '');

procedure TfrmPrincipal.PrepararImpressao;
begin
   ACBrSATExtratoFortes.Impressora      := Imp;
   ACBrSATExtratoFortes.LarguraBobina   := LarguraBobina;
   ACBrSATExtratoFortes.MargemSuperior  := MargemSuperior;
   ACBrSATExtratoFortes.MargemInferior  := MargemInferior;
   ACBrSATExtratoFortes.MargemEsquerda  := MargemEsquerda;
   ACBrSATExtratoFortes.MargemDireita   := MargemDireita;

end; 

PrepararImpressao;

ACBrSAT.ImprimirExtrato;

 

Segue abaixo o código para imprimir etiqueta:

Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'config.ini');

      with ACBrETQ do
      begin
         Desativar;

         case Ini.ReadString('IMP_ETQ', 'DPI', '') of
         'dpi203' : DPI:= TACBrETQDPI(dpi203);
         'dpi300' : DPI:= TACBrETQDPI(dpi300);
         'dpi600' : DPI:= TACBrETQDPI(dpi600);
         end;

         case Ini.ReadString('IMP_ETQ', 'MODELO', '') of
         'etqNenhum' : Modelo:= TACBrETQModelo(etqNenhum);
         'etqPpla' : Modelo:= TACBrETQModelo(etqPpla);
         'etqPplb' : Modelo:= TACBrETQModelo(etqPplb);
         'etqZPLII' : Modelo:= TACBrETQModelo(etqZPLII);
         'etqEpl2' : Modelo:= TACBrETQModelo(etqEpl2);
         end;

         Porta         := Ini.ReadString('IMP_ETQ', 'PORTA', '');
         Temperatura   := StrToIntDef(Ini.ReadString('IMP_ETQ', 'TEMPERATURA', ''),10);
         Velocidade    := StrToIntDef(Ini.ReadString('IMP_ETQ', 'VELOCIDADE', ''),-1);

         case Ini.ReadString('IMP_ETQ', 'BACKFEED', '') of
         'bfNone' : BackFeed:= TACBrETQBackFeed(bfNone);
         'bfOn' : BackFeed:= TACBrETQBackFeed(bfOn);
         'bfOff' : BackFeed:= TACBrETQBackFeed(bfOff);
         end;

         Unidade       := etqMilimetros; //etqDecimoDeMilimetros;
         MargemEsquerda:= StrToIntDef(Ini.ReadString('IMP_ETQ', 'MARGEM_ESQ', ''), 0);

         case Ini.ReadString('IMP_ETQ', 'ORIGEM', '') of
         'ogNone' : Origem:= TACBrETQOrigem(ogNone);
         'ogTop' : Origem:= TACBrETQOrigem(ogTop);
         'ogBottom' : Origem:= TACBrETQOrigem(ogBottom);
         end;

         case Ini.ReadString('IMP_ETQ', 'PAGCOD', '') of
         'pceNone' : PaginaDeCodigo:= TACBrETQPaginaCodigo(pceNone);
         'pce437' : PaginaDeCodigo:= TACBrETQPaginaCodigo(pce437);
         'pce850' : PaginaDeCodigo:= TACBrETQPaginaCodigo(pce850);
         'pce852' : PaginaDeCodigo:= TACBrETQPaginaCodigo(pce852);
         'pce860' : PaginaDeCodigo:= TACBrETQPaginaCodigo(pce860);
         'pce1250' : PaginaDeCodigo:= TACBrETQPaginaCodigo(pce1250);
         'pce1252' : PaginaDeCodigo:= TACBrETQPaginaCodigo(pce1252);
         end;

         Ativar;
      end;

      with ACBrETQ do
      begin
         if (Modelo = etqPpla) then
          begin
            ImprimirTexto(orNormal, 2, 2, 2, 21, 2, Copy(LabelProduto.Caption, 0, 30));
            ImprimirCaixa(10,32,56,17,1,1);
            ImprimirBarras(orNormal, barEAN13, 2, 2, 4, 2, ComboBoxProduto.Text, 10, becSIM);
            ImprimirTexto(orNormal, 3, 4, 4, 2, 24, ' R$');
            ImprimirTexto(orNormal, 3, 4, 4, 2, 41, ' '+copy(LabelPreco.Caption, 4, Length(LabelPreco.Caption)));
          end
          else if (Modelo = etqEpl2) then
          begin
            ImprimirTexto(orNormal, 2, 2, 2, 3, 3, Copy(LabelProduto.Caption, 0, 30), 0, True);
            ImprimirTexto(orNormal, 2, 2, 1, 8, 3, '');
            ImprimirBarras(orNormal, barEAN13, 2, 2, 13, 5, ComboBoxProduto.Text, 10, becSIM);
            ImprimirCaixa(10,32,56,13,1,1);
            ImprimirTexto(orNormal, 3, 3, 2, 16, 34, 'R$');
            ImprimirTexto(orNormal, 3, 4, 4, 12, 45, copy(LabelPreco.Caption, 4, Length(LabelPreco.Caption)));
          end;

         ACBrETQ.Imprimir(StrToIntDef('1', 1), StrToIntDef(Ini.ReadString('IMP_ETQ', 'AVANCO', ''), 0));
         Desativar;
      end;

Postado
Em 30/07/2021 at 12:45, lincoln disse:

eu sempre deixo a impressora padrao que vo usar no sistema, se o cliente or usar outra el escolhe na hora

Então Lincoln, eu não deixo padrão pois tenho cliente que possui impressora A4 e usa para imprimir boletos, e muitas vezes ele muda ela para padrão.

Postado

SEGUINTE

1 compartilhe a impressora  que vc vai usar  par aimprimir direto

exemplo

\\nome do computador\nome da impressora

 

ACBrPosPrinter1.Porta:=IBQuery2IMPRESSORA.ASSTRING;
 

voce pode usar um arquivo ini ou campo na tabela ponha o nome da impressora

Postado
Em 30/07/2021 at 13:10, lincoln disse:

SEGUINTE

1 compartilhe a impressora  que vc vai usar  par aimprimir direto

exemplo

\\nome do computador\nome da impressora

 

ACBrPosPrinter1.Porta:=IBQuery2IMPRESSORA.ASSTRING;
 

voce pode usar um arquivo ini ou campo na tabela ponha o nome da impressora

É isso mesmo que faço, uso um arquivo INI. No ACBrPosPrinter funciona perfeitamente esse processo, porém no ACBrExtratoFortes que ele desconsidera a impressora definida no INI.

Postado
Em 30/07/2021 at 13:20, lincoln disse:

no componente tem la IMPRESSORA ponha onome dela la

impre.png

Eu faço dessa forma:

Imp                                    := Ini.ReadString('IMPRESSORA', 'PORTA', '');

ACBrSATExtratoFortes.Impressora      := Imp;

 

Aparentemente, acredito estar correto. Sempre na hora de imprimir SAT eu faço esse comando.

  • 3 semanas depois ...
  • Solution
Postado

Boa Noite, descobri onde estava o problema.

Estava passando o nome da impressora junto com a porta para o Fortes, exemplo: RAW:IMPRESSORA

Alterei para o nome da impressora somente, e pronto. Resolvido.

Obrigado Lincoln, pela ajuda.

  • Obrigado 1
  • Administradores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 1197 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.