PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum FastReport - Resetar numero de pagina a cada FP3 #573621

10/01/2017

0

Bom dia galera,

Consegui unir vários FP3 e converter num único PDF, porém o numero de pagina em PDF fica progressivo. Como faço para que, no momento que estou unindo os FP3 as variaveis page# e TotalPages# sejam as que de fato estão em cada FP3?

Exemplo:
Primeiro FP3 possui 3 paginas
Segundo FP3 possui 2 paginas

Preciso de um unico PDF de ambos com numero de pagina de 1 a 3 e em seguida de 1 a 2, atualmente esta de 1 a 5.

procedure TForm1.Button1Click(Sender: TObject);
begin
  UnirLaudo;
end;

procedure TForm1.UnirLaudo;
var
  intFound : Integer;
  PastaArquivo : string;
  MySearch : TSearchRec;
  primeiroAnexo : boolean;

begin
  primeiroAnexo := True;
  PastaArquivo := 'C:\\AstraBPL\\LaudosArquivados\\';
  //procura anexos offline em FP3
  intFound := System.SysUtils.FindFirst(PastaArquivo+'*.FP3',faAnyFile, MySearch);
  if intFound = 0 then begin
    while intFound = 0 do begin
      if primeiroAnexo then begin
        frxLaudos.PrepareReport(True);  //True no primeiro pedido para apagar o que tiver antes
        frxTemp.PrepareReport(True);
        frxLaudos.PreviewPages.LoadFromFile(PastaArquivo+MySearch.Name);
        primeiroAnexo := False;
      end else begin
        frxLaudos.PrepareReport(False);
        frxTemp.PreviewPages.LoadFromFile(PastaArquivo+MySearch.Name);
        frxLaudos.PreviewPages.AddFrom(frxTemp);
      end;
      intFound := System.SysUtils.FindNext(MySearch);
    end;
  end;
  FindClose(MySearch);

  //Exporta para o Disco, num unico PDF, todos os anexos FP3 que foram unidos
  frxPDFExport1.EmbeddedFonts:=StrToBool('True');
  frxPDFExport1.PdfA:=StrToBool('True');
  frxPDFExport1.DefaultPath:='C:\\AstraBPL\\LaudosArquivados';
  frxPDFExport1.FileName:='Laudos.pdf';
  frxLaudos.PreviewPages.Export(frxPDFExport1); //Salva laudos num unico PDF (será excluido ao fim da sessão)
end;
Astralab

Astralab

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar