Winform Reports for .NET
   Home
   Product Comparison
   Products
     PrintForm .NET
     PrintControls .NET
     PrintAdapters .NET
     PrintPreviewDialog .NET
     Localizer ASP.NET
     WebExtenders ASP.NET
   Downloads
     Free Trial Versions
     Upgrades
   Documents & Papers
   Purchase
   Support Index
   Press Releases
   Contact Us
   Privacy Statement
Enter your email and click 'Join List' to be kept up to date with latest releases and Tips and Tricks...

 
Click here to take the PrintForm.NET Tour
Note: the PrintForm walkthrough requires a Java Plug-in of version 1.3.1 or above. To view the walkthrough now click here.
Go to TMG Development Ltd Website
Microsoft Certified Partner

Printing Products Feature Comparison

We have three printing products PrintForm, PrintControls and PrintAdapters, and this page is designed to highlight the differences between them in order to help you decide which one(s) you need.

In brief:

  • PrintForm prints any .NET Windows Form or Control, but you may not always have the level of control over the control's appearance (border width, color etc) that you would like on your printout, hence PrintControls...
  • PrintControls provides a set of controls with a customisable UI and exact size printing on the page. This allows you to specify a control with a rounded rectangle border of a given color and thickness, and then guarantee that it will be 4inches by 2inches on the printed page.
  • PrintAdapters handles printing the controls that typically contain many pages of data: ListView, TreeView and RichTextBox, and also the tabular contents of the DataTable.

More details on the features of each of these are listed below.

Free Trial Versions are available for download from the Downloads Page.

 

Product Comparison Table
  PrintForm PrintControls PrintAdapters
Print any .NET Windows Form more... x    
Print any dotnet windows control more... x    
Print 3rd party controls (may require custom code) more... x    
Save printouts as images more... x x x
Automatic header and footer support more... x    
Scaling/autofit printed output to page more... x    
Derived from .NET PrintDocument more... x   x
Extensible with custom print renderers more... x    
Implements IChainedDocument for composite printouts more... x x x
Print multipage output from common controls ListView, TreeView, RichTextBox more...     x
Print multipage output from DataTable more...     x
ListView and DataTable print with custom TableStyles more...     x
Provides controls with enhanced print features and UI more...   x  
Custom border size/color etc more...   x  
Custom border corners rounded/mitred more...   x  
BackGround fill options (gradient etc) more...   x  
Specify printed size at designtime (e.g. in Inches, mm etc) more...   x  
Printable barcode control more...   x  
Printable line control more...   x  
Printable label control more...   x  
Printable panel control more...   x  
Printable checkbox control more...   x  
Printable picturebox with true metafile support more...   x  
Extensible via PrintControl base class. Create new printable controls. more...   x  

PrintForm: Print any .NET Windows Form

Printform provides the capability to accurately print any .NET windows form. Note from the zoomed in version of the print preview below that these are not just bitmapped images rendered to the print preview - the text is rendered as true vector output to the print metafile. These images show the .NET Windows Form, the PrintPreviewDialog, and the print preview detail view:

PrintForm Grid and Chart printing sample   PrintForm Grid and Chart printing sample print preview   PrintForm Grid and Chart printing sample print preview detail

PrintForm: Print any dotnet windows control

PrintForm has support for printing all the Windows Forms controls included in the .NET Framework. Forms or controls can be rendered to the printout by PrintForm directly by using it in PrintDocument mode, or you can take charge of the printing and just use PrintForm's PrintControl method to render any control into a given Graphics object.

Note that, as with Form printing, PrintForm renders the control internally in scalable vector metafile format wherever possible ensuring the best possible quality of printout.

PrintForm: Print 3rd party controls

PrintForm version 2.1 includes an extensible model for printing 3rd party controls, based on the PrintForm IPrintMethodAdapter interface. A variety of implementations of this are supplied, and the simplest solution when printing a 3rd party control is to associate its Type name with an existing PrintForm IPrintMethodAdapter (see the HowTo faq for more information). For completely custom print rendering you can implement your own IPrintMethodAdapter for the control Type concerned and add it to PrintForm's collection.

PrintForm, PrintAdapters & PrintControls: Save printouts as images

PrintForm version 2.1 now includes a custom PrintController class, FilePrintController, derived from the framework base class PrintController. Supplying this to the Print process in place of the framework's StandardPrintController, PrintControllerWithStatusDialog or PreviewPrintController allows you to direct the printed output to a file (or files) that represent to look of the printed page. The FilePrintController includes support for all the standard framework image types, including gif, png, jpg, emf and multipage tiff.

PrintForm: Automatic header and footer support

PrintForm in PrintDocument mode allows you to specify controls on your form to be printed as header, body and footer components of the page. PrintForm takes care of the layout of the page and positioning of the page elements. This image shows the location of the header and footer, and the positioning of the page body content:

PrintForm header and footer locations

PrintForm: Scaling/autofit printed output to page

PrintForm in PrintDocument mode can automatically scale the page contents to fill the page. This can be combined with centering vertically and/or horizontally. Here the body contents of the page are unscaled, but are centered horizontally and vertically using the PrintForm CenterStyle property:

PrintForm & PrintAdapters: Derived from .NET PrintDocument

PrintForm and PrintAdapters are derived from the .NET Framework baseclass PrintDocument. This means that you can use them anywhere where you might use a PrintDocument. Printing is as simple as configuring the component with the control to print and calling the Print method. To print preview using the framework PrintPreviewDialog set the PrintForm or PrintAdapter reference into the PrintPreviewDialog.Document property and call PrintPreviewDialog.ShowDialog. It is as simple as that.

PrintForm: Extensible with custom print renderers

PrintForm version 2.1 includes an extensible model for printing custom controls, based on the PrintForm IPrintMethodAdapter interface. For completely custom print rendering you can implement your own IPrintMethodAdapter for the control Type concerned and add it to PrintForm's collection.

PrintForm, PrintAdapters & PrintControls: Implements IChainedDocument for composite printouts

The .NET framework gives you the basic PrintDocument, and we have provided the PrintForm and PrintAdapters specialisations discussed above. We have also implemented a further PrintDocument based component called PrintChainManager  that stitches together the output of multiple PrintDocument derived classes to form a single print job, and handles the tracking of how much space on the page each PrintDocument has used so that the next one can start printing where the previous one left off.

In order to participate in this process the PrintDocument must implement our IChainedDocument interface. All of our printing products do so, so it is a simple matter to create a single printed document consisting of the output of some PrintForm operations, followed by the PrintAdapters printing of a DataTable or RichTextBox over multiple pages, followed by the printout of a panel containing some PrintControls.

PrintAdapters: Print multipage output from common controls ListView, TreeView, RichTextBox

PrintForm prints Windows Forms and Conrtols 'as-is'. PrintAdapters was designed to print the contents of controls that typically contain many pages of data, such as the ListView, TreeView and RichTextBox.

PrintAdapters: Print multipage output from DataTable

PrintAdapters prints the ListView control and can also print the contents of a framework DataTable in the same manner over multiple pages.

PrintAdapters: ListView and DataTable print with custom TableStyles

Both PrintListView and PrintDataTable PrintAdapters can either pick up their style information from the source control, or can specify a completely custom style via the TableStyle property.

Applying a custom TableStlye and the resulting PrintPreview:

PrintAdapters TableStyle editor    PrintAdapters PrintListView print preview

PrintControls: Provides controls with enhanced print features and UI

The main goal of PrintControls was to provide a set of controls with a fully customisable UI. This image shows the PrintControls BorderStyle editor with the gradient fill option enabled.

PrintControls border editor

PrintControls: Custom border size/color, custom border corners rounded/mitred etc

Style, thickness and color of each border line segment of a PrintControl can all be adjusted independently, as in this contrived example:

PrintControls border editor

PrintControls: BackGround fill options (gradient etc)

All PrintControls support a variety of gradient fill styles in any of their regions. This image shows the same panel with a variety of gradient fill orientations, and the resulting print preview:

PrintControls Panel border styles in VS.NET    PrintControls Panel print preview

PrintControls: Specify printed size at designtime

As well as being specified in terms of Display units, all PrintControls can also be sized in terms of standard printer units (1000th Inch, 100th mm etc). When set in these units, the on screen size is adjusted so that the required size is produced on the printout. This is particularly useful with Barcodes where a specific minimum printed size is often required.

This image shows the MeasurementUnit property and the SizeInMeasurementUnits:

PrintControl Barcode control property grid in VS.NET

PrintControls: Printable barcode, line, label and panel controls

These controls all have the standard PrintControls customisable UI and allow you to create just about any form or barcode label layout you can imagine. Note the custom color and thickness of borders, rotated barcode etc on the image below.

This printout is achieved without the use of PrintForm. The PrintControls IPrintableControl interface contains a Print method which is used in conjunction with the standard framework PrintDocument to render the control to the page. Samples provided with PrintControls illustrate this process in more detail.

PrintControls label example in VS.NET   

 

Barcode control features include: various symbologies (Code128, Code39, Extended Code39, Interleaved 2of5) and fully configurable QuietZone, Module (Bar) Width and Height, Rotation and Labelling. The image below illustrates the barcode rotation options, and the resulting print preview:

Barcode in VS.NET    Barcode Print Preview

 

PrintControls: Printable checkbox control

PrintControls includes a printable CheckBox control that allows you to specify the image used for the check mark. This image can of course be a fully scalable metafile, see Printable picturebox with true metafile support.

Note in the print preview image below how the check mark metafile preserves the smoothness of its outline even as the preview is zoomed in, also note the configurable borderstyle of the check box outline (see the PrintControls BorderStyle editor details):

PrintControls CheckBox in VS.NET    PrintControls CheckBox print preview

PrintControls: Printable picturebox with true metafile support

The .NET framework PictureBox does not support metafiles. When you set a metafile into its Image property it is converted internally to a Bitmap before being saved to the resx file, thus losing the resolution independence of the metafile that would be particularly useful when rendering the control to a high resolution printer. The PrintControls PictureBox fully supports metafiles and provides all the standard border and sizing behaviour of the PrintControl base class. Here is the PictureBox displaying an image, showing clipping to the rounded rectangle border:

PictureBox PrintControl in VS.NET

PrintControls: Extensible via PrintControl base class

All the controls in the PrintControls library are based on a PrintControl base class. This contains the border printing functionality and the exact size translation code, making it easy to create your own new printable controls. The PrintControl base class also implements a fine-grained painting model making it very easy to draw over the background, for example, but under the client area contents, providing PaintControlBackground, PaintClientBackground, PaintClientForeground and PaintClientBorder events for your custom code.