Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Estou tendo problemas para fazer a impressão da NFCe.

Tentei fazer com os dois componentes ACBrNFeDANFeESCPOS (ligado a um ACBRPosPrinter), onde o resultado é igual a imagem abaixo

image.png.98beb4d30a869763a3e7354fcb7bd14a.png

Tentei fazer com o componente ACBrNFeDANFCeFortes1, onde o resultado é igual a imagem abaixo

image.png.01ae3dc5aa53613bac70190bb0246435.png

Esse aparentemente está mais correto, porem para aparecer dessa forma eu preciso habilitar "MostrarPreview". 

A hora que abrir o preview, clicar em propriedades da impressora, clicar em OK (sem alterar absolutamente nada), e depois clicar em imprimir, se eu não dizer todos esses passos, a impressão sai assim:

image.png.74a8f81b15cc5b7a16d2ef9b14f71d3e.png

Existe alguma configuração que possa fazer para resolver esse problema?

  • Consultores
Postado

Usou exemplo do ACBrNFe e testou as diversas configurações?

tem tamanho de colunas que tu precisa informar e margens

pode usar ESC POS que vai sair 

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

Postado

Sim, peguei o programa exemplo, e testei todas as opções de impressoras (01), com todas opções de Pag. Codigo (02), com opção EscPos (03) selecionado, umas não imprimiram o QRCode, outras deram erro, outras imprimiram, porem sempre desconfigurado..

image.png.37d071a8bc75d87aa3ad1f8552a66b08.png 

A opção Fortes (03) foi o que mais chegou perto do desejado.. 

image.png.9f9c2b4c15503646ad154b680d8dc409.png

Tentei fazer a reinstalação dos drivers da impressora, para tentar achar algum outro problema, porem não deu certo também.. 

 

  • Consultores
Postado

A ppEscPosEpson se eu não me engano é meio que padrão e serve para as demais, tentou usar ela?
Tem algumas propriedades do DANFCe que talvez podem te ajudar, como é o caso das listadas abaixo:

  • ViaConsumidor: Boolean
  • ImprimeDescAcrescItem: Boolean
  • ImprimeItens: Boolean
  • ImprimeQRCodeLateral: Boolean
  • ImprimeLogoLateral: Boolean
  • DescricaoPagamentos: TDescricaoPagamentos
  • ImprimeEmUmaLinha: Boolean
  • ImprimeEmDuasLinhas: Boolean
  • FormatarNumeroDocumento: Boolean
  • Logo: String
  • MargemInferior: Double;
  • MargemSuperior: Double;
  • MargemEsquerda: Double;
  • MargemDireita: Double;
  • CasasDecimais: TCasasDecimais;
  • Curtir 1

Valter Patrick
Gerente de Projetos na empresa CTEC
Consultor ACBr
(33)98400-0936
GitHub: https://github.com/valterpatrick

Ajude o Projeto ACBr crescer - Assine o Clube PRO                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

  • 3 meses depois ...
Postado

Não consegui resolver dessa forma.

Eu peguei o TACBrPosPrinter, peguei a NT referente a impressão de NFCe e fiz a minha própria impressão.

 

procedure TNFe.ImprimirNFCe(Nota: TACBrNFe; ImpPorta: String; ImpModelo: TAcbrPosPrinterModelo; TribFederal, TribEstadual, TribMunicipal: Currency);
var
  mTexto                : TStringList;
  I                     : Integer;
  auxCNPJ               : String;
  auxNomeEmpresa        : String;
  auxLinhaUm            : String;
  auxEndereco           : String;
  auxBairro             : String;
  auxLinhaDois          : String;
  auxCidade             : String;
  auxUF                 : String;
  auxCEP                : String;
  auxLinhaTres          : String;
  auxLinhaProdutos      : String;
begin

  auxCNPJ        := PadLeft(FormatarCNPJ(Nota.NotasFiscais.Items[0].NFe.Emit.CNPJCPF), 18, ' ');
  auxNomeEmpresa := '<n>'+Copy(Nota.NotasFiscais.Items[0].NFe.Emit.xNome,1,35)+'</n>';
  auxLinhaUm     := PadCenter('CNPJ: '+auxCNPJ+' | '+auxNomeEmpresa,64,' ');

  auxEndereco    := Copy(Nota.NotasFiscais.Items[0].NFe.Emit.EnderEmit.xLgr,1,40);
  auxBairro      := Copy(Nota.NotasFiscais.Items[0].NFe.Emit.EnderEmit.xBairro,1,22);
  auxLinhaDois   := PadCenter(auxEndereco+' | '+auxBairro,64,' ');

  auxCidade      := Copy(Nota.NotasFiscais.Items[0].NFe.Emit.EnderEmit.xMun,1,30);
  auxUF          := Copy(Nota.NotasFiscais.Items[0].NFe.Emit.EnderEmit.UF, 1, 2);
  auxCEP         := Copy(FormatarCEP(IntToStr(Nota.NotasFiscais.Items[0].NFe.Emit.EnderEmit.CEP)), 1, 10);
  auxLinhaTres   := PadCenter(auxCidade+'/'+auxUF+' | '+auxCEP,64,' ');
  mTexto        := TStringList.Create;
  try
    mTexto.Clear;
    mTexto.Add('</fb>');
    //****************************************************************************************************************************
    //CABEÇALHO DA NFCe
    //****************************************************************************************************************************
    mTexto.Add(auxLinhaUm);
    mTexto.Add(auxLinhaDois);
    mTexto.Add(auxLinhaTres);

    mTexto.Add(StringOfChar('-',64));
    mTexto.Add('<n>   DOCUMENTO AUXILIAR NOTA FISCAL DE CONSUMIDOR ELETRÔNICA   </n>');
    mTexto.Add(StringOfChar('-',64));
    mTexto.Add(' ');

    //****************************************************************************************************************************
    //ITENS DA NFCe
    //****************************************************************************************************************************
    mTexto.Add('<n>CODIGO DESCRICAO                       QTDE    VL UNIT  VL TOTAL</n>');
    mTexto.Add(StringOfChar('-',64));
    for I := 0 to Pred(Nota.NotasFiscais.Items[0].NFe.Det.Count) do
    begin
      auxLinhaProdutos := PadRight(FormatFloat('000000',StrToInt(Nota.NotasFiscais.Items[0].NFe.Det.Items[I].Prod.cProd)), 6) +' '+
                          PadRight(Nota.NotasFiscais.Items[0].NFe.Det.Items[I].Prod.xProd, 31) +' '+
                          PadLeft(FormatFloat('0000', Nota.NotasFiscais.Items[0].NFe.Det.Items[I].Prod.qCom), 4) +' '+
                          PadLeft(FormatFloat('###,##0.00', Nota.NotasFiscais.Items[0].NFe.Det.Items[I].Prod.vUnCom),  9) +'  '+
                          PadLeft(FormatFloat('###,##0.00', Nota.NotasFiscais.Items[0].NFe.Det.Items[I].Prod.vProd), 9);

      mTexto.Add(auxLinhaProdutos);
    end;

    //****************************************************************************************************************************
    //TOTAIS DA NFCe
    //****************************************************************************************************************************
    mTexto.Add(StringOfChar('-',64));
    mTexto.Add('Qtde total de itens                                         '+ FormatFloat('0000',Nota.NotasFiscais.Items[0].NFe.Det.Count));
    mTexto.Add('Valor total R$                                        '+PadLeft(FormatFloat('###,##0.00',Nota.NotasFiscais[0].NFe.Total.ICMSTot.vProd),9));
    if Nota.NotasFiscais[0].NFe.Total.ICMSTot.vDesc > 0 then
      mTexto.Add('Desconto R$                                           '+PadLeft(FormatFloat('###,##0.00',Nota.NotasFiscais[0].NFe.Total.ICMSTot.vDesc),9));
    mTexto.Add('<n>Total a Pagar R$                                      '+PadLeft(FormatFloat('###,##0.00',Nota.NotasFiscais[0].NFe.Total.ICMSTot.vNF),9)+'</n>');
    mTexto.Add(' ');

    //****************************************************************************************************************************
    //FORMAS DE PAGAMENTOS DA NFCe
    //****************************************************************************************************************************
    mTexto.Add('<n>FORMA PAGAMENTO                                       VALOR PAGO</n>');
    for I := 0 to Pred(Nota.NotasFiscais[0].NFe.pag.Count) do
    begin
      var auxFormaPagamento := FormaPagamentoToDescricao(Nota.NotasFiscais[0].NFe.pag[I].tPag);
      mTexto.Add(PadRight(auxFormaPagamento, 30)+'                         '+PadLeft(FormatFloat('###,##0.00',Nota.NotasFiscais[0].NFe.pag[I].vPag),9));
    end;

    //****************************************************************************************************************************
    //CONSULTA PELA CHAVE + IDENTIFICAÇÃO DO CLIENTE CONSUMIDOR + NUMERO DA NFCe + PROTOCOLO + SERIE + QRCODE
    //****************************************************************************************************************************
    mTexto.Add(StringOfChar('-',64));
    mTexto.Add('              Consulte pela Chave de Acesso em                  ');
    mTexto.Add(PadCenter(Nota.NotasFiscais[0].NFe.infNFeSupl.urlChave,64));
    mTexto.Add('<n>'+PadCenter(FormatarChaveNFe(Nota.NotasFiscais[0].NFe.procNFe.chNFe),64)+'</n>');
    mTexto.Add(' ');
    if Nota.NotasFiscais[0].NFe.Dest.CNPJCPF <> '' then
    begin
      var auxConsumidor := PadCenter('Consumidor - CPF: '+Copy(FormatarCPFCNPJ(Nota.NotasFiscais[0].NFe.Dest.CNPJCPF),1,14)+' - '+Copy(Nota.NotasFiscais[0].NFe.Dest.xNome,1,29),64);
      mTexto.Add('<n>'+auxConsumidor+'</n>')
    end
    else
      mTexto.Add('<n>'+PadCenter('Consumidor não identificado',64)+'</n>');
    mTexto.Add(' ');
    mTexto.Add('    <n>NFCe Nº:</n> '+StrZero(Nota.NotasFiscais[0].NFe.Ide.nNF,6)+'  |  <n>Serie:</n> '+IntToStr(Nota.NotasFiscais[0].NFe.Ide.serie)+'  |  '+DateTimeToStr(Nota.NotasFiscais[0].NFe.Ide.dEmi)+'     ');
    mTexto.Add('          <n>Protocolo de Autorizaçao:</n> '+Nota.NotasFiscais[0].NFe.procNFe.nProt+'             ');
    mTexto.Add('          <n>Data da Autorizaçao:</n> '+DateTimeToStr(Nota.NotasFiscais[0].NFe.procNFe.dhRecbto)+'            ');
    mTexto.Add('</ce>');
    mTexto.Add('<qrcode>'+Nota.NotasFiscais[0].NFe.infNFeSupl.qrCode+'</qrcode>');
    mTexto.Add('');

    //****************************************************************************************************************************
    //TRIBUTOS FISCAIS
    //****************************************************************************************************************************
    if (TribFederal > 0) or (TribMunicipal > 0) or (TribEstadual > 0) then
    begin
      mTexto.Add('          Tributos totais incidentes (LEI 12.741/2012)          ');
      var auxFederal   := 'Federal '+FormatFloat('#,##0.00', TribFederal);
      var auxMunicipal := 'Municipal '+FormatFloat('#,##0.00', TribMunicipal);
      var auxEstadual  := 'Estadual '+FormatFloat('#,##0.00', TribEstadual);
      var auxLinhaTributos := PadCenter(auxFederal+' | '+auxMunicipal+' | '+auxEstadual,64);
      mTexto.Add(auxLinhaTributos);
      mTexto.Add('          Fonte para Trib. Aprox.: IBPT versão CAF7DD           ');
    end;
    mTexto.Add('');
    mTexto.Add('</corte_total>');

    PosPrinter.Porta := ImpPorta;
    PosPrinter.Modelo := ImpModelo;
    PosPrinter.Ativar;
    try
      PosPrinter.Buffer.Clear;
      PosPrinter.Buffer.Add(mTexto.Text);
      PosPrinter.Imprimir;
    finally
      PosPrinter.Desativar ;
    end;

  finally
    mTexto.Free;
  end;
end;


É só chamar a function, passando os parâmetros, no caso o proprio ACBrNFe1, porta, modelo, e tributos.. 
 

  • Este tópico foi criado há 174 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.