OV Printing Pack - set of components for creating, previewing, printing and
saving printable documents
The print preview ability is the must for all programs creating printable
documents. So, I was always wondered why VCL - being very good class library (in spite of written
in Pascal :) ) - almost passes by a problem of document creating, previewing and
Sure, there is TPrinter, but it is too basic for easy use, and there is no
simple way to preview the document. Sure, there is 3rd party reporting tools, but
they did not allow to draw all you need or like to draw.
So I decided to write my own components
for print preview. And I've succeeded in it! Because I liked the results I
decided to publish them.
With time OV Printing Pack ceased to be simple print preview and changed into
full-fledged enough print and report engine. It is not WYSIWIG, you should code
- instead, you get full freedom in any fine drawing. But it doesn't mean that
you are left alone with TCanvas methods. The Pack has power utilities to draw
formatted text, tables of complex structure etc.
The package includes the following components:
- set of
framework methods and events that help to code a report in C++ Builder IDE
or to create specialized derived classes.
determine or set printer capabilities and settings: page size, margins, orientation, resolution
- units transformation functions;
- page layout
methods for formatted text drawing (with various horizontal and vertical alignment
and justification, custom tabulations, text rotation, word
- rich text (RTF)
class to draw tables of complex structure with any content, with ability to
split large tables on pages;
document is ready, you can preview it, print, save to file for subsequent
component for previewing documents created by TCustomOVPrintout and its
descendants. It has more powerful abilities than, for example, MS Word
and may be compared with preview of CAD systems.
- unrestricted zooming and
navigation using TOVPreview methods or by users mouse
- ability to
view more than one page at once; pages can be placed in matrix way, few pages
in row, that is very important when a document you create (for example, large table or
drawing) does not fit one page in width and is split.
- ability to take
ownership on corresponding TCustomOVPrintout component that allows to show
documents modeless, so user can create and view a few documents at once. Of course, modal preview is supported as well.
- default preview form. It can show more than one TOVPreview component on
at the same time, so user can create and analyze any
number of documents at once. The form has controls and keyboard shortcuts for
documents' navigation, zooming, printing and saving / loading, and supports
mouse wheel scrolling.
The OV Printing Pack user interface can be easily
localized by replacing a single little resource file (see help for details).
So far the pack has translations for Danish (thanks to Freddy Holst
Christensen), English, German and Russian . You are welcome to contribute
translations for other languages.
Please download help file and demo application below for more
Please view screenshots
of default preview form.
|Download trial version of OV Printing Pack for C++ Builder
5, 6, 2006, 2009. It is compiled with all available up to now C++
is quite functional but paints logo message in the top left
corner of each page. The zip file contains help and demo project source code.
|Download compiled HTML help for OV Printing Pack
|Download demo executable
|Translated resource files for Danish, English, German and
You can buy full version of OV Printing pack with source
code for $59 online at
(preferred way) or contacting me
directly by e-mail. Registered users get all
future versions for free.
features in version 1.5
- Support for C++ Builder 2009.
Since VCL in C++ Builder 2009 is Unicode without alternative, I believe
there is no sense to make non-unicode VCL applications in it. So the Pack
(and applications that use it) must be compiled with "_TCHAR maps to wchar_t"
I believe the Pack should be compiled in C++ Builder 2007 as well but I
haven't it to make a try.
- TCustomOVPrintout::PrintPages method got extra parameter that
controls if all, odd or even pages
will be printed. The parameter has default value to print all pages so it
don't breaks existing calling code.
- Default preview form (TMemoForm really) save its placement now in ini
file under user app settings folder ("...:\Documents and
features in version 1.4
- New powerful component TOVDrawTable to draw tables of complex structure.
- Support for non-horizontal text drawing (new
font management methods,
text output methods are enhanced).
- Drawing rich text format (RTF).
- Some handy drawing utilities for coordinate transformation,
GDI objects handling,
graphic primitives routines,
- Changes in TCustomOVPrintout
- New protected virtual methods
DoPaintPage calling corresponding events. It makes creation of
descendants more handy.
- New protected virtual method
DoFreeResources and corresponding event
OnFreeResources intended to allow freeing resources allocated
MinMarginBottomMM added. They provide minimum values
of margins conditioned by printer restrictions.
- Method Print now returns
bool indicating that the printing really had
a place (was void).
- Changes in TOVPreview
- Navigation methods IncrementUp,
- Added actions and keyboard shortcuts for new TOVPreview navigation
- Bug with incorrect current page indication fixed.
- Unstable bug with "live" preview deletion fixed.
- Resource file added with localizable strings for easier localization
- Support for BCB 2006.
See help file for more details.
Back to VCL components