Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao imprimir boleto em PDF


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

Recommended Posts

Boa tarde a todos.

Estou usando o quickreport para gerar os boletos pelo ACBrBoleto. Está tudo instalado, tudo funcionando perfeitamente. Entro no demo do ACBrBoleto para o Delphi e gero o boleto que já está previamente preenchido pelo demo e mando Incluir Boleto e logo após mando Gerar PDF. Quando o PDF é gerado, ele gera blzinha, só que na hora de abrir o arquivo, aparece uma mensagem de erro: "O Adobe Reader não pode abrir 'Teste.PDF' porque não há suporte a esse tipo de arquivo ou ele foi danificado (por exemplo, foi enviado como anexo de e-mail e não foi decodificado corretamente.". Só que o meu Adobe está funcionando perfeitamente, abro qualquer outro arquivo com ele, menos esse gerado pelo ACBrBoleto.

Outro erro é quando faço todo esse processo descrito antes para incluir o boleto e mando Gerar HTML, ele traz uma mensagem de erro assim: "Exportação para HTML não implementada pelo QuickReport". O que pode ser isso???

Desde já, obrigado.

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Gerei um boleto em pdf através do Demo com o QuickReport e abriu normalmente.

O boleto em html para o Quick ainda não foi implementado.

Att.

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 !!

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Anexe aqui o arquivo gerado, por favor.

Att.

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 !!

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
  • 1 mês depois ...

No arquivo ACBrBoletoFCQuickFr, no método Imprimir substituí o código abaixo:

 

               MultiExport := TQRMultiExport.Create(self);
               try
                  MultiExport.Report       := RLLayout ;
                  MultiExport.ExportFormat := qrxPDF ;
                  MultiExport.FileName     := NomeArquivo ;
                  MultiExport.ShowDialog   := MostrarSetup ;
                  MultiExport.DPI          := 300 ;
                  MultiExport.DoExport ;
               finally
                  MultiExport.Free ;
               end ;
 
POR: 
 
RLLayout.ExportToFilter(TQRPDFDocumentFilter.Create(NomeArquivo + '.pdf'));
 
Então consegui salvar o arquivo corretamente, sem corrupção
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

 

Por favor, anexe aqui a unit alterada.

 

Att.

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 !!

Link para o comentário
Compartilhar em outros sites

Eu postaria, mas tive que fazer outras alterações pra usar outra tela no lugar do preview padrão e isto daria problema para os demais usuários então vou passar só o método alterado.

Fiz melhorias que para que o PDF fique com metade do tamanho que estava e para evitar um vazamento de memória.

 

Segue o código:

procedure TACBrBoletoFCQuick.Imprimir;
var
  frACBrBoletoQuick : TACBRBoletoFCQuickFr;
  RLLayout: TQuickRep;
  FiltroExportacao: TQRPAbstractExportFilter;
begin
  inherited Imprimir; // Executa verificações padroes

  frACBrBoletoQuick := TACBrBoletoFCQuickFr.Create(Self);
  try
     with frACBrBoletoQuick do
     begin
        case LayOut of
           lCarne  : RLLayout:= BoletoCarne;
           lPadraoEntrega  : RLLayout:= LayoutPadraoEntrega;
        else
           RLLayout := LayoutBoleto;
        end;

        RLLayout.PrinterSettings.Copies := NumCopias ;

        case Filtro of
          fiPDF  :
            begin
              FiltroExportacao := TQRPDFDocumentFilter.Create(NomeArquivo);
              TQRPDFDocumentFilter(FiltroExportacao).CompressionOn := true;
              RLLayout.ExportToFilter(FiltroExportacao);
              FiltroExportacao.Free;
            end ;

          fiHTML :
            begin
               (*  Codigo abaixo comentado pois  não funciona...
               HTMLFilter := TQRHTMLDocumentFilter.Create( NomeArquivo );
               try
                  RLLayout.ExportToFilter( HTMLFilter );
               finally
                  HTMLFilter.Free ;
               end ;
               *)
               raise Exception.Create( ACBrStr('Exportação para HTML não implementada no QuickReport') ) ;
            end ;
        else
          begin
            if MostrarPreview then
               RLLayout.PreviewModal
            else
             begin
               if MostrarSetup then
                  RLLayout.PrinterSetup ;

               if (RLLayout.Tag = 0) then
                  RLLayout.Print;
             end ;
          end
        end ;
     end ;
  finally
     frACBrBoletoQuick.Free ;
  end;
end;
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Hoje a noite vou estar verificando essa alteração quando ao QuickReport e depois estar disponibilizando no svn

 

Eu postaria, mas tive que fazer outras alterações pra usar outra tela no lugar do preview padrão e isto daria problema para os demais usuários então vou passar só o método alterado.

Fiz melhorias que para que o PDF fique com metade do tamanho que estava e para evitar um vazamento de memória.

 

Segue o código:

procedure TACBrBoletoFCQuick.Imprimir;
var
  frACBrBoletoQuick : TACBRBoletoFCQuickFr;
  RLLayout: TQuickRep;
  FiltroExportacao: TQRPAbstractExportFilter;
begin
  inherited Imprimir; // Executa verificações padroes

  frACBrBoletoQuick := TACBrBoletoFCQuickFr.Create(Self);
  try
     with frACBrBoletoQuick do
     begin
        case LayOut of
           lCarne  : RLLayout:= BoletoCarne;
           lPadraoEntrega  : RLLayout:= LayoutPadraoEntrega;
        else
           RLLayout := LayoutBoleto;
        end;

        RLLayout.PrinterSettings.Copies := NumCopias ;

        case Filtro of
          fiPDF  :
            begin
              FiltroExportacao := TQRPDFDocumentFilter.Create(NomeArquivo);
              TQRPDFDocumentFilter(FiltroExportacao).CompressionOn := true;
              RLLayout.ExportToFilter(FiltroExportacao);
              FiltroExportacao.Free;
            end ;

          fiHTML :
            begin
               (*  Codigo abaixo comentado pois  não funciona...
               HTMLFilter := TQRHTMLDocumentFilter.Create( NomeArquivo );
               try
                  RLLayout.ExportToFilter( HTMLFilter );
               finally
                  HTMLFilter.Free ;
               end ;
               *)
               raise Exception.Create( ACBrStr('Exportação para HTML não implementada no QuickReport') ) ;
            end ;
        else
          begin
            if MostrarPreview then
               RLLayout.PreviewModal
            else
             begin
               if MostrarSetup then
                  RLLayout.PrinterSetup ;

               if (RLLayout.Tag = 0) then
                  RLLayout.Print;
             end ;
          end
        end ;
     end ;
  finally
     frACBrBoletoQuick.Free ;
  end;
end;

 

 

Fiz as alterações que vc sugeriu e realmente funciona 100%. Obrigado!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Boa noite

Favor atualizar e testar pelos colegas caso tenha algum problema reportem neste tópico

 

At revision: 5745 SVN

Bom dia,

 

No delphi 7 não compilou o pacote boleto do quick, tenho o quick padrão que vem com o delphi 7, falta essa unit QRWebFilt.

 

Obrigado.

Renato Pavan

Desenvolvedor Delphi / PHP  – Campinas (SP)

 

RWA Sistemas

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

 

Para compilar no meu delphi7 eu comento o uses da QRWebFilt, ai o package é compilado sem problemas.

 

Att.

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 !!

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Juliana,

 

Não tive tempo de abrir o código do ACBrBoleto e estuda-lo.

 

Ele não utiliza o ACBr.inc?

 

Se sim, porque não criar nesse arquivo uma diretiva de compilação chamada: QReport_Web ?

 

De ela estiver comentada essa unit não sera incluida na compilação, caso contrario será.

 

Algo semelhante fiz no ACBrCTe, veja:

 

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, QuickRpt, QRCtrls,
  {$IFDEF QReport_PDF}
     QRPDFFilt, QRPrntr,
  {$ENDIF}

 

 

Neste caso temos em ACBr.inc a diretiva QReport_PDF.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Administradores

Vou dar uma olhada nisso :)

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 !!

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa tarde Juliana,

 

Não tive tempo de abrir o código do ACBrBoleto e estuda-lo.

 

Ele não utiliza o ACBr.inc?

 

Se sim, porque não criar nesse arquivo uma diretiva de compilação chamada: QReport_Web ?

 

De ela estiver comentada essa unit não sera incluida na compilação, caso contrario será.

 

Algo semelhante fiz no ACBrCTe, veja:

 

 

Neste caso temos em ACBr.inc a diretiva QReport_PDF.

 

 

Vou dar uma olhada nisso :)

ótima ideia italo ou tem outra mas ainda não consegui sentar pra testar que é verificar a versão do quick que tem essa funcionalidade de exportação!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Após última atualização que fiz estava dando erro para compilar a unit  ACBrBoletoFCQuickFr.Pas   

procedure TACBrBoletoFCQuick.Imprimir;   

linha 548:   FiltroExportacao: TQRPAbstractExportFilter;  // <<< Não declarado

então adicionei a unit QRPDFFilt na uses principal e compilou sem erro.

Também observei que as units RLFilters, RLPDFFilter estão na uses principal... estas units não seriam do FortesReport e portanto não poderiam ser removidas da uses?  Removi para efeito de testes e não acusou erro.

Uso Delphi XE e QuickReport 5.0.5 Pro.

 

Att.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Amigo, vocês alteraram o código para gerar pdf e o mesmo não está mais gerando o arquivo pdf.

Verifiquei no fonte e vi que a rotina de gerar o pdf foi comentada na revisão 5848 .

Como não queremos modificar o código afim de não ocorrer conflitos com os updates, pedimos que ajustem a rotina que estava funcionando anteriormente.

 

Att, Marcelo.

Link para o comentário
Compartilhar em outros sites

Marcelo, sei que você está pedindo é para Voltar o modo antigo. E não perguntando como faz.

 

 

Mesmo assim segue minha dica, talvez ajude em algo.

ACBrNFe1.NotasFiscais.Clear;
ACBrNFe1.NotasFiscais.LoadFromFile('c:\xml_da_nfe.xml');
ACBrNFe1.DANFE.PathPDF := 'c:\NOTA.pdf';

ACBrNFe1.NotasFiscais.ImprimirPDF; // aqui salva o PDF

Editado por intelmib

Atenciosamente Renan Kemp Peixoto Nhola

Software www.intelmib.com.br

Whatsapp / Tim:  (19) 9-8303-9217 

 

Link para o comentário
Compartilhar em outros sites

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