Ir para conteúdo
Fórum Script Brasil
  • 0

Exportar Qrp p> Jpg


Eder

Pergunta

Ola...

Pessoal

tenho esta dica abaixo pra exportar pra JPG funciona muito bem....mas agora me deparei com um problema......eu usava apenas pra relatorios de uma pagina...agora tirei um relatorio com duas paginas e ai ELE acaba criando um arquivo pra cada pagina gerada....

tipo se for duas paginas...vai criar dois *.jpg

exemplo: pagina1.jpg e pagina2.jpg.

Alguém poderia me dizer se tem como fazer exportar tudo certinho pra jpg num unico arquivo *.jpg, porem com duas paginas??

segue abaixo a dica:

1-Insira a Procedure logo acima do PRIVANTE

procedure QrpToImg(QR: Tquickrep; Path: string; Tipo: Integer);

2-Insira Caso não tenha no Uses: JPEG e QUICKRPT

3-Insira logo após do {$R *.DFM}

lembrando que abaixo o TFORM1 - quer dizer o nome do Form

procedure TFORM1.QrpToImg(QR: TQuickRep; Path: string; Tipo: Integer);
var
 BMP: TBitmap;
 JPG: TJPegImage;
 aUnits: TQRUnit;
 i: Integer;
begin
 // Gera o relatório em memória.
 QR.Prepare;
 // Pega unidade de medida atual no QReport.
 aUnits := QR.Units;
 // Altera unidade de medida para Pixels.
 QR.Units := Pixels;
 try
   for i := 1 to QR.QRPrinter.PageCount do
   begin
     // Cria Bitmap.
     BMP := TBitMap.Create;
     // Cria JPeg.
     JPG := TJPegImage.Create;
     try
       // Define tamanho do Bitmap de acordo com o tamanho da página do QReport.
       BMP.Width := Round(QR.Page.Width);
       BMP.Height := Round(QR.Page.Length);
       // Pegar página a página.
       QR.QRPrinter.PageNumber := i;
       // Atribui a página ao Bitmap.
       BMP.Canvas.Draw(0, 0, QR.QRPrinter.Page);
       // Transfere também para JPeg.
       JPG.Assign(BMP);
       // Salvar em disco.
       if Tipo = 0 then
         BMP.SaveToFile(Path + 'Pagina' + IntToStr(i) + '.bmp')
       else if Tipo = 1 then
         JPG.SaveToFile(Path + 'Pagina' + IntToStr(i) + '.jpg');
     finally
       // Libera objetos.
       BMP.Free;
       JPG.Free;
     end;
   end;
 finally
   // Volta unidade de medida.
   QR.Units := aUnits;
 end;
end;

4-No botão para Salvar coloque:

QrpToImg(FORM2.QuickRep1,'C:\',1); //Exporta o Quick para JPG

Grato

Editado por Eder
Incluída tag's CODE para melhorar a visualização. Utilize a identação também ;)
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi Eder... esta procedure é pra fazer exatamento isto ... para cada pagina do QR criar uma imagem

veja:

procedure TFORM1.QrpToImg(QR: TQuickRep; Path: string; Tipo: Integer);

for i := 1 to QR.QRPrinter.PageCount do // este for criará o numero de imagens, quantas forem as paginas do seu QR

e quando ele salva. é o caminho mais o titulo ( Pagina1.jpg ... Pagina2.jpg .... Pagina3.jpg ... etc ) isto para cada pagina que vier a ser gerada pelo QR

if Tipo = 0 then
         BMP.SaveToFile(Path + 'Pagina' + IntToStr(i) + '.bmp')
       else if Tipo = 1 then
         JPG.SaveToFile(Path + 'Pagina' + IntToStr(i) + '.jpg');

se não me engano o Micheus já postou algo que pode te servir.. da uma pesquisada no forum

http://scriptbrasil.com.br/forum/index.php...st&p=411536

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...