HomeSupportwPDF FAQ

This code can be attached to a button to create a PDF file directly.
You need a TWPDFPrinter component on the form and also set the filename.



procedure TEQGridRLMainForm.PDFExportClick(Sender: TObject);
var i,w,h,res : Integer;
begin
  dxComponentPrinter1.RebuildReport(nil);
  WPPDFPrinter1.Modes := [wpClipRectSupport]; // wpAlwaysHighResPDF can be added in V2.10a
  WPPDFPrinter1.BeginDoc;
  try
    for I := 0 To dxComponentPrinter1.GetPageCount - 1 Do
     begin
     with dxComponentPrinter1.CurrentLink.RealPrinterPage Do
       begin
         res := Screen.PixelsPerInch;
         w := MulDiv(PageSizePixels.X,res,100);
         h := MulDiv(PageSizePixels.Y,res,100);
  
         WPPDFPrinter1.StartPage(w,h,res,res,0);
         dxComponentPrinter1.PaintPage(WPPDFPrinter1.Canvas,I,
                           Rect(0,0,w,h),
                           PaintRectPixels);
       end;
       WPPDFPrinter1.EndPage;
     end;
  finally
    WPPDFPrinter1.EndDoc;
  end;
end;