NOTE THAT THERE HAVE BEEN SOME MAJOR CHANGES IN THE NAMING CONVENTION OF THE FUNCTION CALLS WITHIN THIS RELEASE. THIS WILL AFFECT ALL PROGRAMS CURRENTLY USING PANDA... READ ON FOR DETAILS... Release 0.3 -> Release 0.4 * Imagebox file not found error messages for TIFFs improved (filename that was bad is now included) * Discovered a wierd bug in acroread (I think). See huh.pdf... This seems to be acrobat related. It doesn't happen in gv. * PDF doesn't support / as a character in the name of an object such as an image. Therefore when we add an image into a document we now have to go through the name string and change all of the /'s to -'s. Then again, this might not be a problem with PDF itself, but is certainly a problem with the lexers in xpdf, gv and acroread and therefore is an issue. * Moved all the headers into panda/, which means the demo app can now use the same path for the includes as the real applications that users would be writing. This means that the demo application had to be renamed to pandademo (from panda). * extern "C"'ed all of the headers so that they are accessible from C++ * Defined #defines so that headers are only included once at compilation time * Fixed the Makefile.am so that the man pages are installed as well... * Discovered that the Makefile.am needs to be changed for that the headers will install from their new location in panda/, so I had a look into that as well... ========================== 0.3.1 Released ===================================== * Implemented xmalloc in memory.c so that I could simplify the malloc calls in the rest of the code in the library... Also changed all of the malloc calls in the library to use it... * Resolved the namespace problems by renaming all function calls to use the naming scheme "panda_<<>>". There are #defines to the old names in panda/legacy.h * Note that the namespace changes were partially made by a script, so if there are any typos, could you please let me know... Things still compile, so at least the typos are consistent. * Implemented template pages for PDF documents. These are created via the panda_newpage() call with a page size of gPageSizeTemplateA4. They can then be asserted on a page using panda_asserttemplate(). * Fixed the namespace on variable names as well... This included moving some stuff out of the gcc reserved namespace (__*) in objects.h. * The namespace changes were lots of fun (not). I suggest that no-one ever do them again... * Added legacymain.c to check that the legacy function mappings and stuff actually work * BACKPORTED FROM PANDA 0.3.2: Fixed some small problems with the configure script, added the Makefile.am to the distribution and made some small changes requested by the users... * Started rearranging the demo document so that it shows the features of Panda in a less confusing manner. * If you failed to setup font details before writing a string, Panda would crash. It now works on reasonable defaults. * Made dmalloc stop complaining about freeing NULL pointers, I assume this makes the code more portable. * The saga of the vertical line in JPEG images (reported by dave@valinux.com) - a vertical line appears down the LHS of JPEG images embedded by Panda - visible in: acroread (linux) - not visible in: acroread (win32) gv (linux) xpdf (linux) As a sanity check, I created a PDF using acrobat on a win32 box of just the JPEG image in question... I then compared the streams. They are definitely different, but it would appear that acrobat is converting the image into a TIFF stream before insertion, possibly because of this sort of problem. * Uncompressed TIFF images may now be inserted into PDF documents. * Grayscale TIFF images now can be embedded as well... ========================== 0.4 RC 1 Released ================================== * Documented all of the function calls in curves.c using autodocbook * Documented all of the function calls in dates.c using autodocbook * Fixed the date code so that it actually determines the timezone and the current time properly... I need to make sure this is portable still... * Documented all the function calls in font.c using autodocbook * Documented all of the function calls in images.c using autodocbook * Documented all of the function calls in info.c using autodocbook * Documented all of the function calls in internal.c using autodocbook * Documented all of the function calls in memory.c using autodocbook * Started working on implementing PNG support in the images.c code. At first the code is just going to use uncompressed PNG bitmaps, but after that we can look into how to use the compressed bitmaps as well. I guess a little is better than nothing. * PNG now works for images without alpha channels (uncompressed inside the PDF for now). * PNG now works for images with alpha channels (the alpha channel is ignored) * PNG is now compressed inside the PDF document... I think this means PNG is now fully implementented * Documented all the function calls in panda.c using autodocbook * Documented all the function calls in text.c using autodocbook * Documented all the function calls in trailer.c using autodocbook * Documented all the function calls in utility.c using autodocbook * Documented all the function calls in xref.c using autodocbook * Fixed all the compile warnings that we have had since the namespace change ========================== 0.4 RC 2 Released ================================== * You can now open a PDF to stdout ("-" as the filename). This will result in the PDF document being dumped out to standard out, which could then be piped elsewhere. This is useful for things like web servers. * You can now use panda_setproperty to set whether streams should be compressed with Flate compression where possible. This reduces the size of the PDF document that is produced. If you ask for stream compression and the stream ends up being longer compressed, the stream will be written out UNCOMPRESSED. * Minor changes to the autoconf and automake to support linux shared libraries (Dave ) * Cleaned up use of config defines in images code (Dave ) * Finished off the setup of libtool * Rectified a bug in the TIFF handling code, reported by Juan Herrero * michaelw on irc.freshmeat.net suggested a fix to the problem where the examples were made before the library. This has now been applied... * Open files with binary mode (fopen), so that they work on Windows despite the questionable line handling on that operating system. * Different compression levels for various objects can now be set by the user. Note that the higher the level (the number) the more CPU used, but hopefully the smaller the file... * Colours and fills now work * Safer handling of vsnprintf() et al * Started the Windows port. This has included: - Fixing some function definitions - Wrappering the #includes for Panda headers - Adding Windows GMT handling code - Changing the Creator string to identify this version * Implemented Windows stuff including an ActiveX DLL, a normal DLL and an installer * Angled text (panda_textboxrot)