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.
- Under very special conditions the PDF export could cause a GPF.
- During printing - for very small page dimensions - bottom and right parts of pages could be left out.
- PDF export. If a hatch style was selected by a previous object, a following object could have applied the hatch style (e.g. a line or the letters of a text object) under special conditions.
- Community Edition only: when printing and switching the page orientation to landscape and then back to portrait, VPE did not switch back to portrait mode.
Release Notes Virtual Print Engine v4.0 R3 (05/2008)
- Fixed a severe problem in the PDF Export Module. Under special circumstances it could happen that some or all pages after the first page were exported as blank pages. This bug was introduced in VPE v4.00 R2 due to the PDF output optimizations.
Release Notes Virtual Print Engine v4.0 R2 (04/2008)
- VPE update. The full version number is now shown in the upper right corner of the about-screen.
- VPE update. New modern icons for the preview window, for VPEView.exe and for VPE document files shown in Explorer.
- VPE update. The .NET component is now compiled against .NET 2.0. Some internal handling mechanisms of the preview (reaction on key-presses) had to be adjusted.
- PDF update. Palette-Images are now written palettized, instead of being converted to 24-Bit RGB! This makes created PDF documents smaller.
- PDF updated. Generating more optimized smaller PDF files in general.
- VPE View update. The viewer now displays the name of the currently open file in the window title bar.
- VPE fixed. If a document was stream-based and it had only a single page and it was written to another file using VpeWriteDoc(), a GPF did occur.
- VPE fixed. VpeGetEngineRenderMode() returned wrong values.
- VPE workaround. For buggy printer drivers of tractor / endless printers (especially POS printers) the page format was not handled correctly by the drivers. The new workaround should enable much more tractor / POS printers to work correctly.
- PDF fix. For Rich Text (RTF), which had a solid background color (i.e. "highlighted") the background color was not exported to PDF.
- VPE fix. VpeRenderRTFFile() and VpeRenderBoxRTFFile() had a small memory-leak.
- VPE Mac update. Mac OS X writes into the dylib the output path of the lib. This path is now removed from the dylib.
- VPE fixed. Windows platform. The method VpeSetFontSubstitution() did not affect - as documented - the functionality of the preview and printing.
- VPE workaround. On very few machines (about one of ten thousand) the Font Mapper of Windows did chose e.g. for Helvetica the font Wingdings instead of Arial. Research revealed that something in the registry on such machines is defect. To avoid such problems, VPE now maps internally on Windows platforms Helvetica to Arial, Times to Times New Roman and Courier to Courier New.
- VPE fixed. RTF: under special circumstances for RenderModeVer3 the Underlining and Superscript / Subscript did not work correctly and for RenderModeVer4 Superscript / Subscript did not work correctly.
- VPE fixed. There was a bug in VpeGetDevPaperHeight/Width. For some special code path the internal units were not converted to the document specific units (specified by the property UnitTransformation). Therefore both properties could return wrong - i.e. too large - values.
- VPE fixed. VpeZoomPreview() and VpeSetPreviewPosition() did not work correctly.
- VPE fixed. If the preview was moved to a special scroll position (using the Zoom-Tool) and FitPageWidth was activated, the Y-Ruler was not correctly updated under special circumstances.
- VPE fixed. 1-bit images with a palette, which was not monochrome, had been displayed monochrome (b/w).
- VPE fixed. The bits per pixel had not been extracted correctly from GIF files, it was always 8.
- Charts update. The Windows-Fonts had been used. Now the Base 14 Fonts (PostScript) are used.
- Charts fixed. Non-Windows. Negative Numbers in the grid had been displayed as positive numbers, if the sThousand-separator in the locale of the system was undefined.
- VPE fixed. If the flag PRINTDLG_FULL was used for VpeSetupPrinter(), the Page-Range could be filled out in the dialog, but it was not used.
- VPE fixed. If from the GUI of VPE (by clicking onto the "save"-button in the toolbar) a VPE document file was written to the same name as an existing VPE document file, the current document had been appended to the existing one. Now the existing file is deleted first.
- VPE VCL fixed. RAD Studio: If the preview was embedded, resizing the parent form caused flickering and regions of the VPE preview were overdrawn with the background of the form.
- VPE .NET fixed. The default for the property BorderStyle has been changed to "None" in accordance to the BorderStyle property of other Winforms controls. This was required, because the designer of VS 2005 did omit the assignment of BorderStyle = None, because it thinks this is for all components the default.
- VPE .NET fixed. If a document was not open, the handling of PageWidth / PageHeight was wrong.
- Barcodes fixed. The generation of Code 128 could become under special circumstances very slow, if the provided string was very long.
- Barcodes fixed. The checksum for the PZN barcode was not computed correctly under special circumstances.
Release Notes Virtual Print Engine v4.0 R1 (09/2007)
- VPE fixed. Opening a VPE document file by clicking onto the "open" toolbar button could cause a GPF under very special circumstances.
- VPE fixed. UNC paths could not be used for picture objects.
- VPE fixed. The HTML export could cause a GPF, if a picture object was used whose underlying image file could not be found or read.
- VPE fixed. Chart objects were not written correctly to native VPE document files.
- VPE fixed. The Embedded-Flag for the PenSize / PS was treated as integer. Now it is treated as double and considers the UnitTransformation. So a PenSize of 0.03 cm is written as "PS 0.03". Updated all demo source codes and help manuals accordingly
- VPE fixed. In vpedemo.cpp _taccess() was used erroneously with the ! (not) operator.
- Help fixed. Some functions had been marked erroneously with return type "int" instead of "VpeCoord".
- Help fixed. It was written that only western codepages are supported by the Base 14 Fonts. In fact some more codepages are supported, the help manuals have been updated accordingly.
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.
Royalty-Free
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.
Enhancements
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:
- PDF417
- Data Matrix
- Maxicode (UPS)
- Aztec
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, ZoomOutNew 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_AFTER_OPEN_FILE
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.
VPE_AFTER_SAVE_FILE
New methods: OpenFileDialog, SaveFileDialog
New properties: OpenFileName, SaveFileName
New Error Code: VERR_CANCELLED, if the Open or Save dialogs have been cancelled by the userThe 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:
- ICO (Windows Icon)
- JNG (JPEG Network Graphics)
- KOA (C64 Koala Graphics)
- IFF/LBM (Interchangeable File Format - Amiga/Deluxe Paint)
- MNG (Multiple-Image Network Graphics)
- PBM (Portable Bitmap, ASCII or RAW)
- PCD (Kodak PhotoCD, reads always the 768 x 512 pixel image)
- PGM (Portable Greymap, ASCII or RAW)
- PPM (Portable Pixelmap, ASCII or RAW)
- RAS (Sun Raster Image)
- TGA/TARGA (Truevision Targa)
- WAP/WBMP/WBM (Wireless Bitmap)
- PSD (Adobe Photoshop, only 24-bit RGB or 24-bit RGB RLE, no layers / masks)
- CUT (Dr. Halo)
- XBM (X11 Bitmap Format)
- XPM (X11 Pixmap Format)
- DDS (DirectX Surface)
- HDR (High Dynamic Range Image)
- G3 (Raw fax format CCITT G.3)
- SGI (SGI Image Format)
Notes:
- EMF and WMF is only supported on Windows platforms.
- For technical reasons, VPE can not identify automatically the following formats by analyzing the file content: CUT, PCD, TARGA and WBMP. These formats have simply no identifyable header. Of course VPE will identify them correctly by the suffix of their file name.
- The maximum dimensions for exported WMF is limited to 60 x 60 cm. This does not apply to EMF.
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
- PDF Export: performance improved, PDF files are generated about 20 – 50% faster
- PDF Export: the generated PDF file is more optimized
- PDF Export: all character sets supported by VPE are also supported now by the PDF Export Module
- PDF Export: nicer hatching for exported PDF documents
- Best WYSIWYG experience in the preview now for any zoom-factor, not only the 100% zoom-factor.
- Updated: DevEnum() uses more recent Windows API
- Gradients and Shadow now for Ellipses possible
- The elliptic gradient for rectangles now fills the whole rectangle
- Increased the default PictureCacheSize to 16 MB (was 4 MB before). Note that the image cache does not use any memory unless an image is loaded into memory and it uses only as much memory as required.
- Fixed: The .NET component did not handle the CharSet property correctly.
- Fixed: PDF Export: no more missing characters in the Turkish and Greek codepages.
- Fixed: PDF Export: pies and pie charts were sometimes not displayed / printed correctly in PDF readers.
- New VPE-VCL component projects for the integration into Borland Developer Studio 2006 / 2007
Compatibility Issues
Introduction
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
VPE.EngineRenderMode = VENGINE_RENDER_MODE_VER3That'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.
Important:
- All coodinates supplied to the VPE API are now of type double instead of long.
- The type of all handles has been changed from long to VpeHandle.
The VpeHandle type is typedef'd as a void pointer, which is a 32-bit integer on 32-bit platforms and a 64-bit integer on 64-bit platforms.
Coordinates
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:
- VCHARSET_SYMBOL
- VCHARSET_MAC_ROMAN
- VCHARSET_WIN_ANSI
- VCHARSET_WIN_HEBREW
- VCHARSET_WIN_ARABIC
- VCHARSET_WIN_GREEK
- VCHARSET_WIN_TURKISH
- VCHARSET_WIN_VIETNAMESE
- VCHARSET_WIN_THAI
- VCHARSET_WIN_EAST_EUROPE
- VCHARSET_WIN_CYRILLIC
- VCHARSET_WIN_BALTIC
- VCHARSET_ISO_LATIN_1
- VCHARSET_ISO_LATIN_2
- VCHARSET_ISO_LATIN_3
- VCHARSET_ISO_LATIN_4
- VCHARSET_ISO_CYRILLIC
- VCHARSET_ISO_ARABIC
- VCHARSET_ISO_GREEK
- VCHARSET_ISO_HEBREW
- VCHARSET_ISO_LATIN_5
- VCHARSET_ISO_LATIN_6
- VCHARSET_ISO_THAI
- VCHARSET_ISO_LATIN_7
- VCHARSET_ISO_LATIN_8
- VCHARSET_ISO_LATIN_9
The Preview now opens by default in a "Fit to Window Width" modeA "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 (www.herdsoft.com) 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)
- changed: PictureExportColorDepth is now by default True-Color (24-bit), was palette color (8-bit) before
- renamed: PictureExportQuality to DocExportPictureQuality
- changed: long ExtIntDA(long hDoc, long i, long s) to LONG ExtIntDA(VpeHandle hDoc, LONG i, LONG s)
- changed: Event BeforeMail() now with an additional cancel-paramter: BeforeMail(boolean Cancel)
- changed: VPE Control: the property Scale is no longer a design-time property, only runtime.
For existing Delphi / C++ Builder projects, this will cause an error, when loading an existing project. Ignore the error to continue.- renamed: VpeSetDefOutRectSP() to VpeSetDefOutRect()
- renamed: VpeSetOutRectSP() to VpeSetOutRect()
- removed: VpeGetOutRect(), VpeGetPosRect(), VpeSetPosRect()
- removed the parameter POINT * from VpePolyLine() and VpePolygon()
- removed the parameter with_filters from VpeGetPictureTypes()
- removed: VpeInitCharts()
- removed: VpeGetObjCoords()
- removed: SetScaleStep and SetScaleStepPercent, the scaling is now done in predefined non-linear steps
- removed: EnableMouseScaling
For your existing .NET projects this will cause a compile error. To solve the problem remove the offending line where MouseScaling is assigned a value.
For existing Delphi / C++ Builder projects, this will cause an error, when loading an existing project. Ignore the error to continue.- removed: VpeObject.PictureFlags (DLL: VpeGetObjPictureFlags() and VpeSetObjPictureFlags())
- removed: DefaultBitmapDPI and VpeKeepBitmapAspect
- renamed: KeepPictureAspect to PictureKeepAspect
- renamed: SetDefaultPictureDPI to SetPictureDefaultDPI
- 4-bit palette images can not be rotated
- Metafiles (WMF) and Enhanced Metafiles (EMF) can not be rotated anymore.
- Dither_16 flag removed for Picture Export, dithering to 16 colors no longer supported
- changed to type int: VpeSetObjectID and VpeGetObjectID, as well as VpeCreateUDO and VpeGetUDOlParam
- PICEXP_ flags renamed, property PictureExportOptions removed, instead new properties JpgExportOptions, TiffExportOptions, GifExportOptions, BmpExportOptions, PnmExportOptions
- Tiled Image support for TIFF has been dropped
- .NET only: changed the methods TVPEPolyLine::AddPoint(Point p) to TVPEPolyLine::AddPoint(double x, double y) and
TVPEPolygon::AddPoint(Point p) to TVPEPolygon::AddPoint(double x, double y)- .NET only: the property PreviewScale is no longer a design-time property. For your existing .NET projects this will cause a compile error.
To solve the problem remove the offending line where PreviewScale is assigned a value.
VPE v3.60 (09/2004)
Release Notes v3.60
- Note: you may install this new version safely in parallel to any existing prior VPE version.
- New native .NET Controls: Winforms .NET Control and WebServer .NET Control
The controls are developed in native C# and overcome several problems, which arise when using an ActiveX under .NET. As all our VPE Controls (like the ActiveX and VCL), the VPE-.NET Control uses internally the VPE DLL. The code base of VPE will remain C++.
There are some differences, between the old ActiveX / VCL and the new .NET controls:
- According to the .NET programming paradigm, all constants of VPE, like for example PIC_KEEPIMAGE, etc. have been moved into typed enumerations, e.g.
enum PictureFlags { KeepImage, ... };- Some events were renamed, according to the standard event naming conventions of .NET, e.g. RequestClose à Closing
- Some properties were renamed, according to the standard naming conventions of .NET: e.g. Caption à Text
- New TVPEPolyLine, TVPEPolygon and TVPEChartData Object
- New UDOGraphics property for UDOs
- Updated: The version number and file name of the VPE ActiveX changed (from v3.50 to v3.60, i.e. VpeCtrl35.ocx changed to VpeCtrl36.ocx). In order to use the new ActiveX in your existing applications, you must remove the old control from your forms and insert the new one.
- Updated: The LZW patent has expired. Therefore VPE and dycodoc will now import GIF and LZW-TIFF images without specifying the flag PIC_ALLOWLZW.
- Updated: Server licenses can no longer be activated by calling the License() method of VPE. Instead, server licenses are installed on machines using our new License Management Tool. The License() method was removed from the ActiveX. Any additional license keys, e.g. for the PDF Export Module, are now entered during setup. The licensing is then done by the standard COM licensing mechanism.
- Updated: Enhanced Edition and higher: Metafiles (WMF, EMF and DXF) can now be rotated in 90 degree steps (before, only bitmap images could be rotated).
- Updated: VPE can now be run as a service. However, this requires a valid Server License, otherwise demo banners will be shown.
- Updated: VPE now stores paths to pictures (i.e. images) within VPE documents as relative paths. This means the paths are converted to positions relative to the VPE document itself. This new technique makes VPE document files much more portable.
Example:
A VPE document is created at c:\projects\docs\mydoc.vpe
The document includes a picture from c:\projects\images\logo.jpg
VPE will convert this path to a path relative to the position of the VPE document,
i.e. to: ..\images\logo.jpg
This allows to move the VPE document file to a different location, as long as the image is moved to the same relative position (..\images\).
A better example would be that the VPE document file is created at:
c:\projects\docs\mydoc.vpe and the picture is located in the same directory, i.e. c:\projects\docs\logo.jpg. In this case the resulting relative path would be logo.jpg- Updated: VPE DLL: You can now install a message callback function. In this case VPE will not send events via SendMessage() or PostMessage() to your application window, instead it will call your callback function. This is very useful, if you want to run VPE on servers or in batch jobs in windowless applications.
For details please see the new function VpeSetMsgCallback().- Updated Professional Edition and higher: new property ExportNonPrintableObjects.
By default, objects which are marked as non-printable are not exported (for example to images or PDF). If this property is set to True, objects which are marked as non-printable are exported, too.- Updated: If a licensed (non-demo) VPE Document was viewed in VPEView (the stand-alone document viewer), and the e-mail button was pushed, VPEView mailed the document as PDF file marked as demo. Now - depending on the licensing when a VPE document was created - VPEView will mail the attached document as:
1) Trial-Version: attachment is a non-licensed (demo) PDF file.
2) VPE license applied, but no PDF license: attachment is a licensed (non-demo) VPE file.
3) VPE license and PDF license applied: attachment is a licensed (non-demo) PDF file.
Exception: if the property EditProtection is activated, the VPE document file must have been created using the PDF Export Module Enterprise Edition. In this case VPEView will attach a PDF document which can only be printed, but not modified. If EditProtection is activated and the PDF Export Module Standard Edition has been licensed, VPEView will not attach a PDF file, but a VPE document file.- Updated: "Open read-only" checkbox in VPEView's open file dialog removed.
VPEView opens files always write protected (i.e. in read-only mode).- Updated: Scale2GrayFloat was not in effect, if an image was exported.
Note: Scale2Gray and Scale2GrayFloat are not in effect if images are exported to metafiles (WMF/EMF). Furthermore Scale2Gray images are always exported with a resolution of 96 DPI, regardless of the target resolution of the exported image. Only Scale2GrayFloat images are exported scaled to the target resolution of the exported image.- Updated: VPE Standard Edition can now import RLE encoded BMP files. The higher editions could do this always by using the Davinci graphics import library.
- Updated: Professional Edition and higher: new properties UDOIsPrinting, UDOIsExporting, UDODpiX and UDODpiY (see manual / help files for details)
- Updated: Enterprise Edition and higher: new methods InsertPage() and RemovePage()
Now you can insert blank pages anywhere within the document as well as remove any pages from the document.- Updated: Implemented Workaround: some functions of Win9x/Me can not handle bitmaps larger than about 16 MB, which caused huge bitmaps not to be displayed. There is also a limit in WinNT / 2000 / XP, which is around 24 - 32 MB.
Large bitmaps are now displayed correctly in VPE.- Updated: Implemented Workaround: DevPaperFormat, DevPaperWidth and DevPaperHeight returned for some printer drivers USER_DEFINED, even if a standard paper format was chosen in the printer setup dialog. The cause was that some printer drivers return slightly different values than they should, e.g. 2501 instead of 2500 for the paper height. VPE is now using a fuzzy search on the paper dimensions to find settings matching the predefined paper formats.
- Updated: Implemented Workaround: due to the security features in Outlook Express 6 and Outlook 2002 or higher (which can also be installed for earlier Outlook versions as security fix), Outlook will show a warning message that an external application is trying to access the address book, when sending an e-mail. To avoid this, VPE does not call MAPIResolveName() anymore. If you want VPE to look up a name in the mail client's address book, add the new VMAIL_RESOLVE_NAME = -2147483648 (hex 0x80000000) to the RecipientClass parameter of the method AddMailReceiver(). E.g. AddMailReceiver("Frank Miller", VMAIL_TO + VMAIL_RESOLVE_NAME). However, if you use this flag - with Outlook Express 6 or Outlook 2002 or higher or the security fix installed - this will cause a warning message to appear that an external application is trying to access the address book.
The warning is also shown by Outlook - and can not be avoided - if you sent e-mails without showing a dialog (i.e. MailWithDialog = False).
The warning can be disabled in Outlook with "Options | Security" by unchecking "Show warning if other applications try to send an e-mail under my name".- Note: PrintOptions = PRINT_ALL + PRINT_NO_AUTO_PAGE_DIMS will speed up printing. Also, if a network printer is offline, the setting will shorten the wait period by much, because VPE will not try to communicate with the printer driver.
- Note: Due to the new server licenses and their new thread-safe code introduced with VPE v3.50, VPE will open documents with demo banners activated, if the number of allowed processes or threads (each is counted as one user) is exceeded.
For non-server licenses, a maximum of three processes - with the same license key - may simultaneously open VPE documents without showing demo banners, but one process may open as many VPE documents as wanted (within one thread, i.e. within one instance of an application).- Note: New Standard Terms and Conditions of Use, please see the help file "Programmer's Manual" for the new Standard Terms and Conditions of Use.
Amongst other things, it is much more clearly regulated, in what cases multiple developers are using a VPE Software Development Kit (SDK) License, e.g. if VPE is encapsulated in a layer (like a control, component, library, class library or an interpreter for control files, etc.), and a developer is using this layer, it means that the developer is using a VPE SDK License.
VPE SDK Licenses can no longer be sold or transferred.
Updates or Upgrades of our software constitute an inseparable unit together with the original software from IDEAL Software GmbH. An update or upgrade and the original software may not be used by two different persons at the same time.
Furthermore it is clearly regulated that Server Licenses are required for each server VPE is running on. Please read the new Standard Terms and Conditions of Use carefully.- Note: Due to the increased and unbearable amount of spam mail (several thousands per day), we deleted all e-mail addresses except our standard support e-mail address. This is the only valid e-mail address. Furthermore, it is required to put the keyword "VPE" in the beginning of the subject line. If you omit the keyword, it is very likely that we will not receive your e-mail. Please keep this in mind.
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 www.IdealSoftware.com (european mirror: www.IdealSoftware.de) 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 the Manuals / Help files by many details.
The ActiveX / VCL Reference now also contains hyperlinks into the Programmer's Manual.- The following properties can now be read and written, instead of being writeable only:
PenSize, PenStyle, PenColor, SetPen, NoPen
BkgMode, TransparentMode, BkgColor, BkgGradientStartColor, BkgGradientEndColor, BkgGradientRotation, HatchStyle, HatchColor
FontName, FontSize, CharSet, TextAlignment, TextBold, TextUnderline, TextUnderlined, TextStrikeOut, TextItalic, TextColor, SelectFont, SetFont, SetFontAttr
Rotation
PicturePage, PictureType
SetBarcodeParms, BarcodeAlignment, BarcodeMainTextParms, BarcodeAddTextParms, BarcodeAutoChecksum, BarcodeThinBar, BarcodeThickBar
Viewable, Printable, Streamable, Shadowed
UDOlParam
CharCount, DividerPenSize, DividerPenColor, AltDividerNPosition, AltDividerPenSize, AltDividerPenColor, BottomLinePenSize, BottomLinePenColor, DividerStyle, AltDividerStyle, FormFieldFlags- DevPaperWidth and DevPaperHeight returned null, if the device driver had set the page dimensions through DevPaperFormat (for example US_LETTER). The code is changed, so both properties compute and return the values accordingly to the paper format instead of returning null. They now return null only in case of a general device driver problem, or if the paper format is unknown to VPE.
- New properties DevPrintableWidth and DevPrintableHeight, return the dimensions of the whole printable area of the currently selected output device.
This way you can now compute the left and top unprintable areas as well as the right and bottom unprintable areas.- Enhanced the printing code: new PrintOptions Flag "PRINT_WAIT_COMPLETION":
Normally, VPE fires the event VPE_PRINT with wParam = PRINT_MSG_END and exits from the printing code after the job has been transfered completely and successfully to the spooler. But because Windows begins to check the printer status only, after the print job has been completely transferred to the spooler, VPE can't recognize the status of the job in the queue.
By using PRINT_WAIT_COMPLETION, VPE loops within the printing code until the job has been printed completely.
Use the flag PRINT_WAIT_COMPLETION, if you need to be 100% sure that the job has been printed successfully. The disadvantage is that VPE and your application will stop execution until the job has been printed completely.
Note: even if printing directly to the printer without the Windows spooler, VPE will not detect printer errors if the flag PRINT_WAIT_COMPLETION is not used.- Extended the list of predefined paper formats by much: 77 new predefined paper formats
- Now considers form settings of printer drivers under WinNT / Win2000:
some printer drivers did not return valid information about the current paper format and -dimensions, but did set the dmFormName member of the DEVMODE structure.
This is now considered.- New Event VPE_CANCLOSE
VPE requests confirmation from your application if the preview can be closed.- STRG + Mouse-Wheel = Zooming in very fine steps in the preview
- Tooltips now reflect the desktop settings (regarding the font settings)
- RenderPrint() and RenderWrite() now set RenderWidth = 0 and RenderHeight = 0 if an empty string is passed. Before, they returned very small values, which are correction factors due to round-off problems when rendering text on the internal ultra-high resolution device.
- Modified printing code slightly, DOCINFO structure uses Output Filename.
- VPEView now remembers the path of the last browsed folder when restarted
- The property IsPrinting is now true (as in older versions) during the printer setup process AND the real printing process. This is, because you may not close your application while the setup or the printing is being performed.
- Implemented workaround for some faulty printer drivers: printing colored hatch styles to some color printers could cause wrong or mixed-up colors to be printed.
- If the VPE ActiveX is embedded in a form, it now takes over the focus, if you click with the mouse into it (wasn't so before). Also, if the VPE ActiveX is embedded in a form, the Mouse-Wheel is handled correctly.
- If the VPE VCL is embedded in a form, it now takes over the focus if you click with the mouse into it. Also, if the VPE VCL is embedded in a form, the Mouse-Wheel is handled correctly.
- VCL and OCX now make use of exception handling
- VCL: inserted the properties Align, Anchors, Constraints and Enabled
Enhanced Edition and Above
- Integrated a complete new Barcode Library for VPE Enhanced Edition and above (BarVisD.dll). The new library supports now a total of 38 different barcode types (compared to 21 before).
- The font for the barcode can be selected (for example UPC-A and UPC-E require an OCR-B font).
- The new library is able to generate automatically check digits for each barcode, if wanted.
- Where possible, the ratio between thick and thin modules can be set by code.
- The POSTNET barcode now supports 5, 9 and 11 digits.
- New flag for the text position of barcodes: BCP_DEFAULT, this will choose automatically the standard appropriate for the selected barcode type.
- New barcodes are:
- 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
- Included updated versions of the graphics import library Davinci and the image processing library Leonardo.
- If PIC_TYPE_AUTO is used, VPE is now able to determine the image type not only by looking at the file suffix, but also by examining the file itself. So PIC_TYPE_AUTO will work in most cases even if the file suffix does not describe the image type. Example: you try to import a JPEG image with the name "test.001" and have set the PictureType = PIC_TYPE_AUTO, even then VPE will detect that this is a JPEG file!
Professional Edition and Above
- New ChartProperties and Constants:
ChartLineWidthFactor
ChartBarWidthFactor
ChartLegendFontSizeFactor
ChartXLabelFontSizeFactor
ChartYLabelFontSizeFactor
ChartTitleFontSizeFactor
ChartSubTitleFontSizeFactor
ChartFootNoteFontSizeFactor
ChartAxisTitleFontSizeFactor
ChartPieLegendWithPercent
ChartPieLabelType- New property PrintScale: value range: 0.01 >= scale <= 6.0
- This property sets the scale for printing. It does not affect the scale in the preview.
- VPE Professional Edition is now compatible with dycodoc the new Visual Designer: dycodoc can read and edit VPE Document files created with the Professional Edition or any higher edition.
- New property EditProtection controls, wether a VPE Document can be processed by dycodoc. By default, this flag is True = dycodoc can process VPE Document files.
Enterprise Edition and Above
- Ships with dycodoc the visual designer to layout form templates by point-and-click
- Extended VPE API to process the templates generated by dycodoc
- Additional FormField Object
- Allows to query and modify an object's properties even after it has been inserted into a VPE Document
- The content of single pages can be deleted
Changes from the beta version:
- Final Release. The code name "FormFusion" for the new visual designer has been replaced by the final name "dycodoc" (DYnamic COntent DOCuments)
- Complete Online help and "Guided Tour" manual
- Supports FormFields
- The content of pages can be deleted
- The VPE API for template- and object processing was enhanced and all reported bugs have been removed (We want to thank all our beta testers for the help they provided!)
- The file suffix for dycodoc document files did change respectively from FFD to DCD. Please rename all .FFD files into .DCD (the file format is 100% upwards compatible).
- All templates need to be re-generated: open each DCD file and save it immediately, this will update the TPL file.
- The feature of grouping objects has been removed from dycodoc, the feature will be
re-introduced in a later 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 "http://www.my-server.com/image1.gif" 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.
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)
Workarounds:
- 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)
Bug-fixes:
- 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)