Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure ExportRichEditFRToPDF(RichEdit: TRxRichEdit; sFileName: String = '');
- // inc Felipe Augusto 15/04/19 - Para passar o conteúdo do RxRichEdit para o FastReport e exportar em PDF sem necessidade do PDFCreator instalado. Atend: 01787347.
- var
- frxReport: TfrxReport;
- frxRichView: TfrxRichView;
- frxPage: TfrxReportPage;
- frxPDFExport: TfrxPDFExport;
- frxReportSummary: TfrxReportSummary;
- SaveDialog: TSaveDialog;
- oMSRich: TMemoryStream;
- begin
- SaveDialog := TSaveDialog.Create(nil);
- try
- SaveDialog.DefaultExt := '.pdf';
- SaveDialog.Filter := 'Arquivo PDF (*.pdf)|*.pdf';
- SaveDialog.Options := [ofOverwritePrompt, ofReadOnly, ofEnableSizing];
- if (sFileName <> EmptyStr) or SaveDialog.Execute then begin
- frxReport := TfrxReport.Create(RichEdit.Owner);
- frxPage := TfrxReportPage.Create(frxReport);
- frxReportSummary := TfrxReportSummary.Create(frxReport);
- frxRichView := TfrxRichView.Create(frxReport);
- frxPDFExport := TfrxPDFExport.Create(RichEdit.Owner);
- oMSRich := TMemoryStream.Create;
- RichEdit.Lines.SaveToStream(oMSRich);
- oMSRich.Position := 0;
- try
- // Configura o relatório
- frxPage.TopMargin := 0;
- frxPage.BottomMargin := 0;
- frxPage.LeftMargin := 0;
- frxPage.RightMargin := 0;
- frxPage.Parent := frxReport;
- frxReportSummary.Parent := frxPage;
- frxRichView.Parent := frxReportSummary;
- frxReportSummary.Stretched := True;
- frxRichView.StretchMode := smMaxHeight;
- frxReportSummary.Height := frxPage.Height;
- frxRichView.Align := baClient;
- frxRichView.RichEdit.Lines.LoadFromStream(oMSRich); // Carrega o rtf para o relatório
- if (sFileName = EmptyStr) then
- sFileName := SaveDialog.FileName;
- frxReport.PrintOptions.ShowDialog := False;
- frxPDFExport.ShowDialog := False;
- frxPDFExport.FileName := sFileName;
- frxPDFExport.PrintOptimized := True;
- frxPDFExport.Quality := 100;
- frxReport.PrepareReport; // Prepara o relatório
- frxReport.Export(frxPDFExport);
- finally
- FreeAndNil(frxPDFExport);
- FreeAndNil(frxReport);
- FreeAndNil(oMSRich);
- end;
- end;
- finally
- FreeAndNil(SaveDialog);
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement