Do you like to promote your wxWidgets based application or component!? Post it here and let's see what the critics have to say. Also, if you found that ONE wx component the world needs to know about, put it here for future reference.

Version 0.8.5 of the wxCode component wxPdfDocument is available for download from http://sourceforge.net/projects/wxcode. The new version 0.8.5 is compatible with wxWidgets 2.8.10. Some preparations were done to make wxPdfDocument compatible with wxWidgets 2.9.x and above, too.

Edited (Oct 15, 2009): The MakeFont utility did not compile with wxWidgets 2.9.0. This has been fixed in the wxCode SVN. The wxPdfDocument samples work with wxWidgets 2.9.0.

Edited (Nov 12, 2009): There is a new file release (version 0.8.5.1) available including the fixes applied to wxCode SVN and rebaked build files which hopefully solve the build problems on Mac OS X.

Edited (Nov 21, 2009): There is a new file release (version 0.8.5.2) available fixing a major bug in method RegisterFontDirectory. Additionally the makefont utility compatible with wxWidgets 2.9.0 is now included in the file release.

What is wxPdfDocument?

wxPdfDocument allows wxWidgets applications to generate PDF documents. The project started as a port of FPDF - a free PHP class for generating PDF files - to C++ using the wxWidgets library. Several add-on PHP scripts found on the FPDF web site are incorporated into wxPdfDocument. In the meantime several features not found in FPDF were added - among others for example support for OpenType fonts, kerning, and layers. Current and future development is and will be strongly influenced by the well-known Java PDF library iText.

Especially the font handling has been overhauled completely. In Unicode builds preprocessing fonts for use with wxPdfDocument is no longer necessary. Support for fonts defined by a wxFont object is implemented for the wxWidgets ports wxMSW and wxGTK. Help is needed to implement it for wxMac, too.

Although support for the wxWidgets printing framework is not yet implemented in this version, important prerequisites are fulfilled to add a wxPdfGraphicsContext in one of the next releases.

Added features in all builds:
- support for individual page sizes
- support for setting fill rule to odd/even or winding
- support for setting the text render mode
- support for layers (optional content groups)
- support for patterns as draw and fill colours
- support for Code 128 barcodes

Added features in Unicode build:
- support for kerning
- support for different encodings for Type1 and TrueType fonts
- support for using TrueType and OpenType fonts loaded directly from .ttf or .otf file
- support for using Type1 fonts loaded directly from .pfb and .afm file
- support for using TrueType and OpenType fonts defined by a wxFont object
- font subsetting for OpenType Unicode fonts (experimental, currently non-CID fonts only)
- direct positioning and writing of glyph numbers for TrueType/OpenType Unicode fonts (this may be used in conjunction with tools for writing complex scripts like ICU)

Added features in ANSI build:
- support for fonts defined by a wxFont object (mapped by family, weight and style to the Adobe core fonts)

General changes:
- coordinate transformation (location of origin and y axis orientation) is now done directly in PDF. This was a prerequisite to add wxGraphicsContext support
in an upcoming version. User unit scaling is done programmatically.
- unified the naming of all methods manipulating colours. Now always the British spelling is used, i.e. colour instead of color.

catalin wrote:As I am using [mostly] 2.9.x now I will probably wait for the wxPdfDocument version compatible with it. But I'll definitely have to try it [again].

I tried to compile wxPdfDocument with a wxWidgets 2.9.0 prerelease several months ago and was able to run the sample application successfully after some code modifications (which are incorporated in the new release). So using wxPdfDocument with wxWidgets 2.9.0 should be possible already, although I didn't check it out again myself recently.

Note: To use the build files coming with wxPdfDocument to compile for wxWidgets 2.9.0 it is necessary to change the [wx] version number from 28 to 29 in the build files.

catalin wrote:One more thing - about a year ago I was nagging you about the manipulation of images, and memory management. Are there any changes in those areas too in this version?

Although I certainly remember your inquiry I have to admit that those areas were not yet addressed in version 0.8.5. The main focus for version 0.8.5 was on improving font handling and on laying ground for a more modular design.

There are still quite a number of items on my to-do list, but I decided to release version 0.8.5 to get feedback (and possibly to get some help to implement full font support for wxMac).

The next step will be to implement support for the wxWidgets printing framework, planned for wxPdfDocument 0.9.0. Thereafter the memory management will be addressed. So keep nagging.

utelle wrote:using wxPdfDocument with wxWidgets 2.9.0 should be possible already

..another good news

Today I checked wxPdfDocument with wxWidgets 2.9.0. The MakeFont utility did not compile, but that has been fixed. The changed sources can be found in the wxCode SVN. The samples work with wxWidgets 2.9.0 without problems.