Release Notes Virtual Print Engine v7.20 R1 (11 / 2022)





Release Notes Virtual Print Engine v7.20 (04 / 2019)


Virtual Print Engine




Release Notes Virtual Print Engine v7.10 R1 (11 / 2015)


Virtual Print Engine




Release Notes Virtual Print Engine v7.10 (11 / 2015)


Virtual Print Engine




Release Notes Virtual Print Engine v7.00 R3 (03 / 2015)


Virtual Print Engine







Release Notes Virtual Print Engine v7.00 R2 (09 / 2014)





Release Notes Virtual Print Engine v7.00 R1 (09 / 2014)





Release Notes Virtual Print Engine v7.00 (08 / 2014)


64-Bit Support

All editions of VPE are now available as 64-bit versions.


New Features




Delphi VCL




Release Notes Virtual Print Engine v6.10 R1 (10 / 2012)

This is a service release.







Release Notes Virtual Print Engine v6.10 (04 / 2011)




Changes ActiveX

To provide 64-bit support for the VPE ActiveX, some changes were required:





Release Notes Virtual Print Engine v6.0 (02 / 2010)







Release Notes Virtual Print Engine v5.0 (03/2009)







Release Notes Virtual Print Engine v4.0 R4 (06/2008)

The GIF import did not work correctly for 8-bit images due to a modification in v4.0 R2.




Release Notes Virtual Print Engine v4.0 R3 (05/2008)




Release Notes Virtual Print Engine v4.0 R2 (04/2008)




Release Notes Virtual Print Engine v4.0 R1 (09/2007)




Release Notes Virtual Print Engine v4.0 (08/2007)


Change of the License Terms


PDF Export Module Included

The PDF Export Module is no longer licensed separately. The PDF Export Module Standard Edition is now included in VPE Standard Edition and Enhanced Edition, and the PDF Export Module Enterprise Edition is now included in VPE Professional Edition and higher. No extra fees!


Drastically Reduced Prices

We want to push VPE aggressively into the market, in order to move away from a niche product. For this reason we reduced the prices drastically. You can help making VPE better known to the public by telling your friends, collegues - and everyone who is involved into software development - about VPE and its superior quality in terms of performance, stability, well tought-out programming interface, multi-platform support, in-depth documentation and support.



The VPE SDK license now allows for unlimited royalty-free distribution. Before, the limit was 10.000 installations without paying royalties.
(dycodoc and the VPE Interactive Edition are still not royalty-free.)


SDK License per Machine

The VPE SDK (Software Development Kit) must now be licensed per machine it is installed on. Before, a license was required per developer.


Annual Subscription including free Service Releases, all Updates and Support

The VPE SDK (Software Development Kit) is now licensed together with an annual subscription including free service releases, all updates and support. Due to this new subscription model and the drastically reduced price, updates will not be available without a valid subscription.


VPE SDK Site-License

A new site license for one physical (respectively postal) address is now available for the VPE SDK.


Server Gold Licenses

As before, server licenses are required per server on which VPE is executed. In addition a gold-license (unlimited servers at different physical addresses) is now available.


For details about the new licensing terms, please see the help files.





Multi-Platform Support

VPE is now available for Windows (32-bit), Mac OS X (32-bit, PPC and Intel architectures), Linux / Unix (32-bit), and Solaris (32- and 64-bit).

Whilst providing the same API across all platforms, so that PDF and native VPE document files can be generated in the usual way, VPE will provide the preview capability for the Windows platform only. On the other platforms the preview and printing of PDF files will be delegated to platform specific tools, like Acrobat Reader or Xpdf.

Therefore all methods and properties dealing with the preview and printing are only available on the Windows platform.

Support for Windows 64-Bit will be made available at a later point in time.


Supports Windows Vista

VPE v4.x officially supports Windows Vista.

We detected a severe problem on Windows Vista with all VPE versions prior to v4.0:

It can happen that lines of text disappear randomly in the preview.
Printing or export to PDF is not affected.

We researched the problem and also discussed it with Microsoft. In our opinion this is a bug in Vista. We tested several things in our code and it seems that Vista does not update portions of the screen as it should. For example, when we draw a simple line together with the text, the problem does not occur. The problem does also not occur, if the grid drawing is turned on. The problem does also not occur when Vista is in "Classic Design", i.e. without Glass. VPE's screen output is highly optimized, so that only those objects are redrawn which need to be redrawn. This seems to cause problems.

All VPE versions prior to v4.0 are not specified to work on Vista, as written in the License Agreement. We strongly recommend to use VPE v4.0 or higher on Windows Vista.

After Microsoft could not provide any help to solve the problem, we researched a workaround which is implemented into VPE v4.0 and higher. This workaround solves the problem completely.


New Help Files

The VPE SDK (Software Development Kit) ships with help files in the HTML-Help format with a complete new and nicer layout.


Help Integration into Visual Studio

The help files are now integrated into Visual Studio, including context sensitive help (F1 key).


All Code in a Single DLL

There are no longer several different DLLs (for example one for barcodes, one for charts, etc.). All code is compiled into a single VPE DLL (except the JavaScript Engine for the Enterprise Edition and higher). This make the deployment process for you much easier.


New HTML Export Module (Professional Edition and higher)

VPE documents can now be exported to HTML.


New 2D-Barcodes (Professional Edition and higher)

Implemented four new two-dimensional barcode types:


New Office2003 and Whidbey themes for the GUI (Graphical User Interface)

The theme for the GUI can be switched during runtime between Office2003, Whidbey and the old Office2000 styles (on platforms different from WinXP the Office2003 and the Whidbey themes appear nearly identical, the difference becomes visible on WinXP, because Office2003 uses the color theme of XP, whilst Whidbey uses a constant color theme).


New GUI Functionality (Graphical User Interface)

New Open and Save Buttons in preview, which can be made separately visible by new design-time properties (tbOpen, tbSave).

The Toolbar button "1:1" has been exchanged with "Show full page", which now makes a page always fit into the preview window accordingly to its size, and the button "Show Full Page" has been exchanged with "Fit to Window Width", which makes a page always fit with its width into the preview window. Accordingly the VKEY_ constants have been renamed.
So, if either of both modes is activated and you resize the preview, the document scale will change accordingly.
The "Fit to Window Width" mode is activated by default. In order to gain the old preview behaviour, set the property ScalePercent = 100 immediately after calling OpenDoc().
In addition the "Zoom In" button now allows to center the view around the point where the preview was clicked, as well as to drag a rectangle which shall be zoomed into the center of the preview.

The maximum zoom level has been changed from 400% to 3200%.

New property ScaleMode allows to specify: (1) Fit whole page to preview, (2) Fit page width to preview, (3) Activate Zoom-Tool, (4) Free scaling
New method ZoomPreview, allows to zoom a specified rectangle of the current page into the preview
New method SetPreviewPosition allows to scroll the preview into the given position
New methods ZoomIn, ZoomOut

New events:
VPE_BEFORE_OPEN_FILE, handles return code 1 as cancel operation so you can display your own dialog and open a file for example from a database via a memory stream.
VPE_BEFORE_SAVE_FILE, handles return code 1 as cancel operation so you can display your own dialog and save a file for example to a database via a memory stream.
New methods: OpenFileDialog, SaveFileDialog
New properties: OpenFileName, SaveFileName
New Error Code: VERR_CANCELLED, if the Open or Save dialogs have been cancelled by the user

The event VPE_BEFORE_MAIL now handles return code 1 as cancel operation, so the mail dialog is not shown. This allows you to use your own mailing code.


Off-Screen Double-Buffering for the Preview

VPE now paints into a bitmap buffer and then copies the whole bitmap into the screen.
This provides flicker-free moving from one page to another.


Smoother Scrolling (Graphical User Interface)

The scrolling code has been reworked and the scrolling is much finer and smoother now.


User-Defined Localization for the GUI (Graphical User Interface)

The whole GUI can now be localized with user defined strings into any language you wish.
New constant VGUI_LANGUAGE_USER_DEFINED as value for the Property GUILanguage (.NET: UserDefined).
New method SetResourceString()


Advanced Layout Features (Professional Edition or higher)

ClearPage() deletes all objects of the current page.
RemovePage() deletes the current page.
InsertPage() inserts a page between two existing pages.

All three methods do also work for stream-based VPE documents, i.e. documents which have been opened using SwapFileName (DLL: VpeOpenDocFile).


Rounded Rectangles

New Property CornerRadius, which allows to draw boxes, text and RTF with rounded corners.


Compression for VPE Documents

VPE documents can be written compressed, this is the default now (see property „Compression“). The new compression makes VPE documents about 60 - 80% smaller.


Optimal Image Embedding

Images which have the flag PIC_IN_FILE set, are now embedded with their original (compressed) raw data within VPE documents - i.e. a JPG image is embedded as JPG, a TIF as TIF, etc. - and regardless of the number of times an image is used within the document, it is only embedded once.
In previous versions of VPE, files were embedded in uncompressed form, and they had been embedded as many times as an image was used.
Moreover, if the property Compression is activated, and if the embedded image is not a TIF, GIF, JPG or PNG, it will be compressed automatically using the flate (ZLIB) compression.
ATTENTION: When you read one or more VPE document files into the current document using ReadDoc(), and those files have embedded images, you may NOT delete or modify the source document files, while the current document is open! This is, because VPE loads the embedded images directly out of the source document files each time they are not found in the image cache.


VPE v4.x Document Files are Platform-Independent

VPE document files are now platform independent. They can be transparently read and written on Little Endian as well as on Big Endian machines and on 32-bit platforms as well as on 64-bit platforms. Also the embedded file names of referenced pictures are translated to the specific platform (i.e. correct slash and backslash handling). However, since Windows is case insensitive for file names, special care must be taken that you provide the file names for documents and pictures in the correct case sensitive way on all platforms!


Reading / Converting old v3.x Documents

VPE v4.0 can read old v3.x document files by default, but it can not write to them, i.e. it can not add new objects or pages to existing v3.x document files.

Converting old v3.x document files to the new v4.0 format:
Open the document file with SwapFileName (DLL: use VpeOpenDocFile())
Call WriteDoc(<new file name>)
The file <new file name>, is in v4.0 format
After conversion, the document can not be read by VPE v3.x, an error is returned.


New Memory Streams (Professional Edition and higher)

You can now read VPE documents, Pictures and RTF from memory-streams, and also write all exportable document types to memory-streams (currently VPE, PDF, HTML), as well as export images to memory-streams. Therefore you can read / write such documents and images from / to databases as BLOBS. Moreover server based applications can create documents like PDF or HTML very fast in memory (without disk I/O overhead), and stream them for example via HTTP to web browsers.


Reading / Writing Document Page Ranges (Professional Edition and higher)

VPE Document files can now be read and written in a specified page range, e.g. from page 5 to page 8, instead of all pages.


New Methods to Clear, Insert and Remove Pages (Professional Edition and higher)

The Professional Edition now allows to clear pages (i.e. delete all objects in it), insert pages anywhere in a document and to remove pages anywhere from a document.


Stream-Based VPE Documents can be modified On-Disk (Professional Edition and higher)

Stream-based VPE documents (i.e. opened with SwapFileName set / DLL: VpeOpenDocFile() is used) can now be modified ON-DISK, i.e. you can clear, add, insert and remove pages or objects (removal of objects only offered by the Enterprise Edition and above). In previous versions of VPE, after a document page was written to disk, it could not be modified.
Stream based documents can become fragmented, if you are adding a lot of new objects to a page which has already been written to disk. Especially if you are adding objects in multiple steps, i.e. you add some objects, seek to another page, seek back and add again objects and so on, or open and close the document file repeatedly while adding each time new objects. This will result in decreased performance when reading pages of document files.

Defragmenting document files:
Open the document file with SwapFileName (DLL: use VpeOpenDocFile())
Call WriteDoc(<new file name>)
The file <new file name> is defragmented, whilst requiring nearly no memory for the operation.


Delays When Calling OpenDoc() Removed

VPE does no more query the default printer when calling OpenDoc(). Network printers which had been offline caused huge delays each time calling OpenDoc(), because the printer was queried by VPE. Now a printer is queried when any of the printer or printing related methods is called.


RTF (Professional Edition and higher)

Properties Superscript and Subscript implemented
Property StrikeOut (keyword: "strike") implemented


One-Dimensional Barcodes (Enhanced Edition and higher)

The barcodes of type Code 128 / EAN 128 now allow to insert FNC1 - FNC4 control codes, and the character set (A, B or C) can now be forced to be switched to a specific character set (this overrides the automatic charset switching).


New Supported Image Types (Enhanced Edition and higher)

For TIFF images also JPEG compression (v7) is now supported (not the old 6.0 specification).

In addition to TIF, GIF, BMP, PCX, JPG, PNG, EMF, WMF now the following new image file formats can be imported:



Importing Multi-Page Images (Enhanced Edition and higher)

Pages can now be extracted not only from Multipage-TIFF files, but also from Multipage-GIF and Multipage-ICO files.


Exporting  Multi-Page Images (Enhanced Edition and higher)

Writing Multipage-TIFF and Multipage-GIF is also supported.


New Dithering Algorithm for Picture Export (Professional Edition and higher)

Dithering to 256-colors is now done by color-reduction using the NeuQuant neural-net quantization algorithm, which delivers very good quality. In addition the faster Xiaolin Wu color-reduction algorithm can be selected.


Scale2Gray and Scale2GrayFloat (Professional Edition and higher)

Scale2Gray and Scale2GrayFloat now have a much higher quality, but they are significantly slower. This is, because these routines are written in pure C++ (before, they had been written in Assembler). The advantage is that the code can be ported to different platforms now.


Gradients Enhanced

For gradients a third middle color can be defined, so three-dimensional gradients can be created.


Base 14 Fonts Embedded in VPE DLL

The base 14 AFM files are now compiled into the vpe.dlls, therefore they are no longer shipped with the installation and they are no longer required. Beside the advantage that they do not need to be shipped and installed when deploying VPE, the VPEFont.lst file is no longer created at runtime on Windows and Mac platforms (which was a catalog file with information about the AFM files).


Default Charset on Mac OS X

The default charset on Macintosh is VCHARSET_MAC_ROMAN. If you have created text with non-ASCII characters (for example umlauts) on the Windows platform and wish to use them on the Mac, then set Charset = VCHARSET_DEFAULT.


Other Enhancements



Compatibility Issues



We made a lot of changes and improvements to the inner code, as well as cleanups for the API. This guarantees platform independence as well as a stable code base and a consistent API that will last at least for the next ten years.

Major changes: we changed the internal coordinate system (which now has a precision of 0.0001 mm), the external coordinate system of the API and the text rendering engine.

But don't panic. We spent huge efforts to allow to port your old source code to the new engine with only two lines of code.
If you want to use your old source code, you have to insert the following code after calling OpenDoc():

VPE.UnitTransformation = VUNIT_FACTOR_MM10

That's it.

But when using the Ver3-Renderer, your source code and the created documents are not platform independent. The Ver3-Renderer is using the Windows API to render text. The new Ver4-Renderer is using our own platform independent code, so text is rendered on all platforms (Windows, Mac OS X, Linux, Unix, Solaris, etc.) identically. For new applications, we strongly recommend to use the new rendering engine to gain platform independent source code and documents. The Unit-Transformation is up to your preferences, but basically it will be easier to use centimeters or inches instead of 1/10th of millimeters.

For details about differences between the Ver3- and Ver4-Renderer, please see below.





The new internal coordinate system now has a precision of 1/10.000 mm. The VPE API provides a new universal coordinate unit transformation mechanism! You now supply double values (typed as VpeCoord) to the VPE API and select whether the supplied values are in centimeter units, inch or in the old classical 0.1mm way.

Example in centimeters: VPE.Print(1.5, 1.5, “hello world!“)

Therefore all methods / properties which received a 0.1mm coordinate have been changed to the data type double.

With: VPE.UnitTransformation = VUNIT_FACTOR_MM10 you can switch back to the old unit transformation, so that your old source code is fully compatible to VPE v4.0.
With: VPE.UnitTransformation = VUNIT_FACTOR_CM you switch to the centimeters unit transformation, this is the default after calling OpenDoc()
With: VPE.UnitTransformation = VUNIT_FACTOR_INCH you switch over to the inch unit transformation


New values for the V-Flags (VFREE, VLEFT, etc.)

Due to the new internal coordinate system, the values of the V-Flags needed to be changed. If you have always used the V-Flags in your source code, the you need nothing to do, but recompile your program. If you have used constant values like -1 instead of VFREE, then you need to change your source code. If you change it, you should start using the V-Flags.


New platform independent text rendering engine

New platform independent rendering engine, which works identical on Windows as well as on Mac OS X, Linux, Solaris and all other platforms. Due to the new rendering engine, text strings are computed a bit wider and a bit less in height than in v3.x. So in very rare cases it can happen that word breaks occur on different positions than in v3.x, which means that text objects might require more width than before, but also less height. For this reason we implemented a property, so you can switch back to the original rendering engine. This can be achieved by setting EngineRenderMode = VENGINE_RENDER_MODE_VER3. This is useful to adapt your existing code to this new version of VPE. But the old rendering engine is only available on Windows. Therefore, for platform independence, it is strongly recommended to use the new rendering engine. It is also likely that the old rendering engine will be removed in a future version of VPE (in several years).

The new font manager of VPE supports the following character sets:

The Preview now opens by default in a "Fit to Window Width" mode

A "Fit to Window Width" mode for the preview is now by default activated. This means the scale is computed accordingly to the width of the preview, so the displayed page fills the preview from the left to the right. In order to gain the old preview behaviour, set the property ScalePercent = 100 immediately after calling OpenDoc(). See also the new property ScaleMode.


Win95/98/Me and NT no longer supported

It is possible that VPE works on those platforms, but we haven't tested it and they are no longer officially supported. VPE does not execute on Win95 due to missing symbols in kernel32.dll.


DXF support dropped

VPE can no longer import DXF files. If this is an issue for you, use the following workaround: Acquire a license of the Davinci image import library ( and use it for importing DXF files as Enhanced Metafiles (EMF). Provide the EMF to VPE.


FLT support dropped

VPE can no longer use the Microsoft Office image import filters (did anyone ever use them? We doubt it.)


The flags parameter for the Picture()-method has been eliminated

Each flag is now implemented as property. Some flags have been removed, because they were way too complicated and no one did ever use them.
The new properties (for VPE documents as well as for VPE objects) are:
bool PictureCache (was: PIC_KEEPIMAGE, default is true)
bool PictureScale2Gray (was: PIC_SCALE2GRAY)
bool PictureScale2GrayFloat (was: PIC_SCALE2GRAY_FLOAT)
bool PictureX2YResolution (was: PIC_X2YRESOLUTION)
bool PictureBestFit (was: PIC_BESTFIT)
bool PictureEmbedInDoc (was: PIC_IN_FILE)
bool PictureDrawExact (was: PIC_EXACT)


New VpeHandle data type (DLL only)

VpeHandle data type introduced for 64-bit compatibility. Use for all handles now this new type: Document, Polygon, Polyline, Bookmark, Table, Field, DataSource, Object, Control, Streams
On 32-bit platforms VpeHandle is a 32-bit integer value, on 64-bit platforms it is a 64-bit integer value.

Example: VpeHandle hDoc = OpenDoc(...)


New Ordinals (DLL only)

The ordinals of the VPE DLL’s have changed. If you are using the DLL and if you are importing the functions of the DLL by ordinals, you must reorganize the ordinals. If you are using C/C++ and have been linking against our import library or DEF file, we have done the work for you. Just link to the new import library / def file.
If you are importing the DLL functions by name, you only need to delete the functions we have removed from the DLL as listed above.


Other Minor Compatibility Issues (mainly cosmetic changes)



VPE v3.60 (09/2004)

Release Notes v3.60


VPE v3.50 (10/2002)

Release Notes v3.50

·     Updated: This new version offers direct export to the Adobe PDF file format.
The PDF export module is available separately as an add-on for all editions of VPE.
First of all, the API of VPE has not been changed, i.e. VPE's call interface is 100% backwards compatible.
Internally, a lot has been changed: in order to implement PDF export into VPE, a complete new layer archictecture has been implemented, called 'DAL' (Device Abstraction Layer). For any painting operation, VPE now calls the DAL interface and DAL itself decides how and onto which device the output shall be created.
For this reason major parts of VPE have been rewritten, including the code for handling images: we introduced a complete new cache mechanism (three-level associative) and a complete new internal handling for images, which will allow a port to Linux and other Unix derivates in future.
Due to the new architecture, two new DLL's make up the PDF export module:

·        VPDF32.DLL
the add-on Device Abstraction Layer for PDF export

·        VZLIB32.DLL
v1.1.4.0 of Zlib, the famous compression library by Jean-loup Gailly and Mark Adler (with the already fixed security problem)

If you don't want to export to PDF, both DLL's need not to be shipped with VPE to your end-users. VPE loads these DLL's dynamically when the PDF export is initiated.
The DAL for Windows output has been statically linked to the VPE DLL's.

·      Updated: New method VpeClearTplFields() (ActiveX / VCL: TVPETemplate.ClearFields)
Sets all field values of the given template to NULL.

·      Updated: New property VPE.MailAutoAttachDocType
In order to specify whether the VPE document shall be attached as native VPE document or as PDF document. See the "Reference" help files / manuals for details.

·      New method VpeClearTplFields() (ActiveX / VCL: TVPETemplate.ClearFields)
Sets all field values of the given template to NULL.

·     Updated: VPE and the PDF Export Module are NOT Thread-Safe, only the server versions are thread-safe, new property for the server versions: VPE.EnableMultiThreading.
With VPE v3.50, server licenses must be acquired in order to use VPE on servers. Please see our website (european mirror: in the section "Ordering" for details.

·      Updated: except the VPE Interactive Edition, the new ActiveX can be used in the .NET environment. The interactive features of the VPE Interactive Edition do not work correctly in the .NET environment.
The problem is currently being researched.

·      Updated: VPE is shipped with demo sources for .NET.

·      Updated: A document is now printed much faster, VPE is caching selected form and paper dimensions for the currently selected device.

·      Updated: Improved Code for SetDevice(), it could happen in special environments that it didn't work correctly if network devices were selected using UNC (e.g. "\\Ideal\Office Printer").

·      Fixed: VPE v3.20 R4 could cause a floating-point exception (especially in Delphi or CBuilder), when using RTF in templates or calling any RenderRTF() function.

·      Fixed: VPE v3.20 R1 - R4 could cause a GPF in a very special case: if AutoBreak was enabled and the last command of a Rich Text Object was \par and if the last line of the RTF Object did end exactly on the bottom margin of the page, i.e. a page break was caused by the final \par, but on the next page no text output was necessary.

·      Fixed: The UPC-E barcode was generated wrongly for some special character sequences

·      Implemented Workaround: some printer-drivers returned incorrect values for a system call, which could cause a GPF in VPE (for example FinePrint). This is solved.

·      Implemented Workaround: on printers with restricted access rights (in a network) some function calls in the Windows API failed. This is solved.

·      Note: in order to make the printer accept the automatic selection of user defined page formats, it might be necessary to define a form of the desired page format.
Example: with "Start Menu | Settings | Printers" the window with the installed printers will appear. Right-click on a blank area of the window and choose "Server Properties" from the pop-up menu. In the upcoming dialog, define a custom form of the desired dimensions. For example name it "Test" and set the width to 760 and height to 1280. In your source code, select the printer and the desired page format like this:
VPE.Device = "Epson LQ-550"
VPE.PageWidth = 760
VPE.PageHeight = 1280
That's it.

·      Note: It has been reported, that some very few printer drivers have a bug and do not print in duplex mode, unless you deactivate that VPE instructs printers automatically to choose the paper according to the current page dimensions of the VPE document
(for example with PrintOptions = PRINT_ALL + PRINT_NO_AUTO_PAGE_DIMS).


VPE v3.20 (3/2001)

Release Notes v3.20

All Editions:


Enhanced Edition and Above

  • EAN2 (standalone)
  • EAN5 (standalone)
  • Code 11
  • Code 128A
  • Code 128B
  • Code 128C
  • Code 3 of 9 Extended
  • Code 93 Extended
  • MSI
  • PZN (Pharma Code)
  • ISBN (International Standard Book Number)
  • ISBN + EAN5
  • Royal Mail 4 State Customer Code
  • Identcode (German Post AG)
  • Leitcode (German Post AG)
  • 2 of 5 Matrix
  • Telepen-A


Professional Edition and Above


Enterprise Edition and Above

Changes from the beta version:



VPE v3.0 (3/99)


The Preview (all Editions the same):


  • Each button has now new Tooltips
  • All buttons and even the whole toolbar can be hidden. Also the whole statusbar, or the quick-scroller and the text segment in it can be hidden.
  • The preview can now be shown - and the user can scroll through it - while you are still generating a document. Works with and without multi-threading!
  • The document is not destroyed, when the user closes the preview (optional).
  • When the user scrolls to another page, the preview jumps to the top position of the page (optional).
  • 10 Languages: VPE selects for all tooltips and dialogs automatically the right language (depending on the country setting in the control panel). Supported languages are: English, Spanish, German, French, Italian, Dutch, Danish, Swedish, Finnish, Norwegian. Optional you can select the language by code.



Features of the Standard Edition:
  • Over 130 (!) new functions (215 functions compared to 81 functions in v2.2)
  • Totally new ActiveX with full HTTP-support to create server based reports. Therefore you can plug it into browsers on the intra- and internet and even reference image and RTF files with for example "" in your
    source code (VB Script or Java(-script)). On the other hand, you can create a VPE Document file in your native programming language on the server (or transfer it there) and instruct the ActiveX in the browser to load and display a specific document file from the server in the intra- or internet. Moreover, the images contained in the document may be references to image files stored on the server.
  • Additionally, the new E-Mail feature allows very easily to fax VPE-Documents directly with MS-FAX and MS-MAIL through MAPI (and it can be done without user interaction - only by code)
  • ActiveX implemented with ATL, therefore no longer huge MFC and OLE DLL's needed
  • Imports: BMP, WMF and EMF (EMF: 32-Bit version only)
  • Barcodes not included
  • Set the orientation (landscape or portrait), the printer's paper-bin and the page dimensions for each page
  • Rendering functions for text and images, i.e. compute their size before inserting them into a document
  • New Error-Handling: VpeGetLastError() returns detailed error information
  • All rectangular objects (like boxes and text) can now have a gradient background color. For printing, this color can be set to a solid color, like for example a very light gray. Furthermore VPE can optional determine the connected printer (b/w or color) and chose itself if to print gradients or a solid color.
  • New strikeout property for text
  • New AUTO_BREAK Message informs about an auto break and allows to modify the new page (inserting objects, changing margins, etc.)
  • Font's Character-Set can be chosen separately for each text object
  • The ending of a text can now be cut in the middle of a word (new flag ALIGN_LEFT_CUT)
  • Image-Import: Image-Type can be set by code, or determined by VPE automatically by file extension as in v2.2
  • All functions of the preview can be executed by keystrokes. The keyboard layout is freely defineable.
  • VPE View - Icon Royalty-Free Document Viewer for VPE-Documents (very useful, if documents are sent by e-mail).
  • Printing Progress Dialog with new progress-bar. The Dialog can be hidden.
  • New VPE_PRINT Messages:
    • PRINT_MSG_SETUPABORT = 3, // User aborted Setup-Dialog
    • PRINT_MSG_SETUPSTART = 4, // Setup-Dialog started
    • PRINT_MSG_SETUPEND = 5, // Setup-Dialog ended
  • New message VPE_PRINT_NEWPAGE, so device properties can be changed while printing for each page.
  • Several Print Messages can be answered by:
    • PRINT_ACTION_OK = 0 // Engine shall continue its work (for all VPE_PRINT_xyz messages the same)
    • PRINT_ACTION_ABORT = 1 // for message VPE_PRINT with wParam=PRINT_MSG_SETUPSTART: Engine shall not start printing
    • PRINT_ACTION_CHANGE = 1 // for message VPE_PRINT_NEWPAGE: Engine shall use changed Device-Properties

Sophisticated Printer Control, a complete new set of Device Functions and -Properties:

  • VpeSetDevice(long hDoc, LPCSTR device) - select device by name
  • VpeGetDevice(long hDoc, LPSTR device, int size)
  • VpeDevEnum(long hDoc) - enumerate all devices installed in the system
  • VpeGetDevEntry(long hDoc, int index, LPSTR device, int size)
  • VpeSetDevOrientation(long hDoc, int orientation)
  • VpeGetDevOrientation(long hDoc)
  • VpeSetDevPaperSize(long hDoc, int size)
  • VpeGetDevPaperSize(long hDoc)
  • VpeSetDevPaperWidth(long hDoc, int width)
  • VpeGetDevPaperWidth(long hDoc)
  • VpeSetDevPaperHeight(long hDoc, int height)
  • VpeGetDevPaperHeight(long hDoc)
  • VpeSetDevScalePercent(long hDoc, int scale)
  • VpeGetDevScalePercent(long hDoc)
  • VpeSetDevPrintQuality(long hDoc, int quality)
  • VpeGetDevPrintQuality(long hDoc)
  • VpeSetDevYResolution(long hDoc, int yres)
  • VpeGetDevYResolution(long hDoc)
  • VpeSetDevColor(long hDoc, int color)
  • VpeGetDevColor(long hDoc)
  • VpeSetDevDuplex(long hDoc, int duplex)
  • VpeGetDevDuplex(long hDoc)
  • VpeSetDevTTOption(long hDoc, int option)
  • VpeGetDevTTOption(long hDoc)
  • VpeDevEnumPaperBins(long hDoc)
  • VpeGetDevPaperBinName(long hDoc, int index, LPSTR bin_name, int size)
  • VpeGetDevPaperBinID(long hDoc, int index)
  • VpeSetDevPaperBin(long hDoc, int bin_id)
  • VpeGetDevPaperBin(long hDoc)
  • VpeSetDevCopies(long hDoc, int copies)
  • VpeGetDevCopies(long hDoc)
  • VpeSetDevCollate(long hDoc, int collate)
  • VpeGetDevCollate(long hDoc)
  • VpeGetDevPrinterOffsetX(long hDoc)
  • VpeGetDevPrinterOffsetY(long hDoc)
  • VpeGetDevPhysPageWidth(long hDoc)
  • VpeGetDevPhysPageHeight(long hDoc)
  • VpeSetDevFromPage(long hDoc, int from_page)
  • VpeGetDevFromPage(long hDoc)
  • VpeSetDevToPage(long hDoc, int to_page)
  • VpeGetDevToPage(long hDoc)
  • VpeSetDevToFile(long hDoc, int to_file)
  • VpeGetDevToFile(long hDoc)
  • VpeSetDevFileName(long hDoc, LPCSTR file_name)
  • VpeGetDevFileName(long hDoc, LPSTR file_name, int size)
  • VpeSetDevJobName(long hDoc, LPCSTR job_name)
  • VpeGetDevJobName(long hDoc, LPSTR job_name, int size)
  • VpeDevSendData(long hDoc, LPCSTR data) - Send binary data to the printer (also known as Escapes)


  • Implemented workaround for text alignment bugs of several NT 4.0 printer drivers
  • Implemented several workarounds, so VPEngine's preview works now reliable with many buggy video drivers (and there are a lot!)
  • Implemented workaround, so that very large b/w images are now displayed in the preview (printing was ok before)


  • Fixed BUG in image-import: y resolution was always set to x resolution. To gain old behaviour new flag PIC_X2YRESOLUTION.
  • Bug Removed: PIC_BESTFIT didn't work correctly under some conditions
  • Fixed BUG in 16-Bit Engine, importing WMF files > 64 KB




Features of the Enhanced Edition:
  • Contains new Davinci Image Import Library Professional Edition v3.0 worth Euro 449,- !!!
    Improved Import (supports more special formats and is much faster) of the following image types:
    • enhanced BMP support (RLE & OS/2)
    • TIFF 6.0 (Fax G3 & G4, grayscale, LZW, packbits)
    • GIF
    • JPEG
    • PNG
    • PCX
    • DXF (large improvements!)
  • DXF files can now be forced to black and white representation
  • Supports Multi-Page TIFF: query number of pages and select one
  • 21 Barcode Types supported
    (EAN-13, EAN-8, EAN-13+2, EAN-13+5, EAN-8+2, EAN-8+5, EAN-128A, EAN-128B, EAN-128C, UPC-A, UPC-A+2, UPC-A+5, UPC-E, UPC-E+2, UPC-E+5, Codabar, Code 39 Code 93, 2 of 5, Interleaved 2 of 5, POSTNET (1.20) )




Features of the Professional Edition:
  • Over 200 (!) new functions (290 functions compared to 81 functions in v2.2)
  • Interprets direct RTF (Rich Text Format) and imports RTF files.
    VPE supports a subset of RTF.
  • Charts
    VPE supports all basic types of charts using SmartChart technology.

  • UDO - Powerful User Defined Objects
    This allows to print and preview any kind of drawing or object, including OLE/COM objects!!!

  • Clickable Objects
    Objects can be made clickable by assigning them a unique Object ID. Moving with the mouse over such an object changes the cursor to a pointing hand. If you click onto such an object your application receives an event containing the Object ID. Then you could for example open a separate dialog, showing more detailed information about the clicked text or image.
  • Scale-To-Gray Technology
    A 300 or 600 DPI image scaled to a 96 DPI device (the screen) is looking bad due to its nature. The Scale-To-Gray Technology uses 2 different images, one for the screen (preview) and one for printing. The screen image is scaled down to 96 DPI while the loss of visual information is transformed to gray-values. This means perfect readability of such images on a 96 DPI device.

    Example, normal scaled image:

    Image scaled with Scale-To-Gray Technology:

  • Export of single pages or parts of pages as:
    • BMP
    • WMF
    • EMF (EMF: only 32-Bit Version)
    • JPEG (compression ratio can be set freely)
    • PNG (compressed or uncompressed)
    • TIFF 6.0 (Fax G3, Fax G4, LZW, Packbits, Multipage, RGB and Grayscale)
    • GIF
    • PCX

For all bitmap formats you can specify the color depth and the resolution (in DPI). Additionally dithering is possible. This is for example very good for faxing documents with fax servers running on non-windows plattforms. (Note, that VPE is now able to fax directly with MS-FAX and MS-MAIL through MAPI).

  • Character Placement
    You can specify a constant offset from one character to another for text objects (not RTF) in 0.1 mm resolution. This is very good for filling in forms that have pre-printed columns for each letter.


Year 2000 Statement

IDEAL Software® Corporation has tested Virtual Print Engine in all Versions and Editions for Year 2000 compliance. We have identified all products as compliant, and we can demonstrate all as compliant.

Currently, none of IDEAL Software's products is date dependent, none require date input, and none make calculations on dates. It is not possible for the products to fail based on running after the year 2000 or during the transition from 1999 to 2000. IDEAL Software data and configuration files do not store dates themselves.

Please feel free to print this document as IDEAL Software® Corporation's official statement concerning Year 2000 compliance.


VPE v2.2 (7/97)


VPE v2.1 (3/97)


VPE v2.0 (10/96)


VPE v1.4 (06/96)


VPE v1.3 (03/96)


VPE v1.2 (01/96)


VPE v1.1 (11/95)


VPE v1.0 (10/95)