A Report Printing Framework product


ReportPrintingFramework is a 2.0 .NET library (or above) to quickly and easily create graphical printing reports. This library is an extension of a printing core library written by Mike Mayer in 2003 and may be downloaded here.

Anyway, to work properly, ReportPrintingFramework needs a patched version of the printing library which you can download from here.

I played with ReportPrinting for some jobs of mine, and I could appreciate it's flexibility and lightness (as for software dependencies and additional dll) expecially when compared to CrystalReports which, surely, has much more features, useless in most cases. The library limitation is that report must be created programmatically, calling the library's methods.

So I thought that could be usefull to have a framework able to load a report from file, in xml format and easy to edit, and to create report from that. Next step was to create a minimal graphical designer to create report files.

See the whole article from CodeProject

Key features

  • Positioning and resizing of statical (text labels, lines, boxes, images etc) and dynamical (variables, tables etc) object onto the drawing surface through sliding and drag & drop operations.
  • Multiple object selection and properties editing (font, colors, borders, position, size etc)
  • Print preview.


ReportPrintingFramework is subject to the terms of the BSD license.

  • Microsoft .NET Framework 2.0 redistribuitable package or above
  • Patched version of ReportPrinting library ( see above for the download link )

No particular procedure is requested. Simply add a reference to ReportPrintingFramework.dll and ReportPrinting.dll into your application.

  • To print a report:
    • Create an object of type ReportPrintingFramwork.RPFReportMaker:
      RPFReportMaker report_maker= new RPFReportMaker();
    • Assign dynamical objects (tables and variables) according to your report needs
    • Create an object of type ReportPrinting.ReportDocument:
      ReportPrinting.ReportDocument report_document= new ReportPrinting.ReportDocument();
    • Load the report from file:
      report_maker.Load( filename);
    • Assign report_maker to ReportMaker property:
      report_document.ReportMaker= report_maker;
    • Print the document (report_document)
  • To use the designer:
    • Create an object of type ReportPrintingFramework.RPFDesignerControl:
      RPFDesignerControl rpfDesignerControl1 = new RPFDesignerControl();
    • Assign dynamical objects (tables and variables) according to your report needs
    • Load the report from file (if it already exists):
      rpfDesignerControl1.LoadDocument( filename);
    • Save report's modifications to file:
      rpfDesignerControl1.SaveDocument( );

For further details have a look at ReportPrintingFrameworkDemos code.