|
After over two years in
development, endless tests, and thanks to the patience and
support of many loyal users, DynaPDF 3.0 is finally here.
Just over a year later than
planned, but better than ever before, DynaPDF goes into the
third round. The main new feature is of course the new
rendering engine. In addition to the functions to render PDF
pages or entire PDF files, there are also examples of a PDF
viewer that renders pages smooth like butter.
The main work is done by
the PDFCanvas Control. This control comes with source codes
for C# and Delphi, it can be used with C#, Delphi, and
Visual Basic .Net (a Visual Basic 6 version will follow in a
few weeks).
The PDFCanvas Control
encapsulates the page cache of DynaPDF, it can be placed on
form like any other component. The Control takes care of the
complicated things, such as scrolling, redrawing, typical
keyboard codes such as Up, Down, Home, End, etc., MouseWheel
events, as well as the error handling. Especially the latter
must be carefully implemented in a multi-threaded
application.
The second main feature is
the new PDF imported. The new algorithm repairs damaged PDF
files, it can import files of any size, and there are new
functions and flags to drastically reduce the memory usage.
Especially the reduction of
the
memory usage was one of the most important requirements. And
there's a good news: If you want to reduce the memory usage
of your with DynaPDF 2.5 compiled application, then you only
need to set the new flag if2UseProxy with SetImportFlags2
(), finished!
This small flag has a huge
impact on the memory usage and with a single line of code
this change is more than manageable. The only condition is
that the input file must not be deleted until the new file
was closed.
But even without any change
is already much more possible than before. All classes and
structures have been optimized for minimal memory usage and
DynaPDF holds no more uncompressed data in memory.
For the really tough cases,
there is now also an option with FlushPages() to write no
longer needed pages into the output file. In this way you
can easily create up to 4 GB large PDF files, even if the
system has no more than 128 or 256 MB of memory installed.
BTW - The new import
algorithm is fully PDF 1.7, Extension Level 5 compatible. It
supports also future features which are not yet defined. As
long as the PDF syntax will not be changed, you can import
future PDF versions without loss of data. Data that DynaPDF
does not understood will be imported as is, this is also the
case for private data that were created by third party
vendors.
Besides the main features,
which claimed the majority of development time, there are
also smaller news, such as support for images with an alpha
channel, soft masks, transparency groups and countless
improvements in detail.
For example, DynaPDF
supports now full names for font selection. This sounds not
really important but when processing spool EMF files, it can
make the difference between a correct and incorrect font
selection. Windows uses full names, while postscript names,
in contrast, are not supported by Windows.
The new version is of
course fully backward compatible, with exception of two
rarely used functions. No function were removed or
incompatibly altered. Also the functions that were marked as
obsolete remain in the library. The upgrade should be as
easy as possible for you.
You find more detailed
information about extended structures, enums, new functions
and so on in the download area in the file Implementation_Notes.pdf.
Linux, Unix
and Mac OS X versions are now also usable without an
Enterprise license. Because these versions are delivered
without source codes, you can of course only use the
precompiled binaries. For the shared libraries this is normally
no problem but if you want to use the static libraries it is
possible that you get linker errors, e.g. if you use a
different GCC version as we used to compile the library.
Static
libraries which were compiled with different GCC versions
are not necessarily binary compatible and in such a case you
would get a linker error and the application cannot be
compiled.
One solution
is to install the same GCC version that we used to compile
the library. Another solution is to use the shared library
instead. If you want to work with the static library and if
you want to avoid possible trouble with certain GCC versions
then it is still recommended to use DynaPDF Enterprise
instead. This eliminates all incompatibilities because you
can compile the library on your own system. |