Have you thought about taking a look at what the Sql-Ledger people are using? It seems to me that they are using perl to fill in and "compile" LaTEX templates to postscript and then passing the result off to Ghostscript to make the PDF.
Of course some will say that LaTEX is nasty to use / learn, but it's really quite straight forward, stable, excessively documented, has many friendly/helpful users, and portable ( I think the only thing you can't find a binary for is EPOC/WinCE/PalmOS etc and even that may be untrue!).
Ghostscript is much the same.
The only real downside is needing to have access to both in addition to Perl, especially since LaTEX does come with "the kitchen sink" (you can get a set of CTAN (comprehensive TeX archive network) disks with everything for cheap.) and is a large install.
I'm kind of thinking that maybe PDF::Template could be a front for such a system to, I don't know, maybe help abstract out the *icky* details? Who knows maybe the Sql-Ledger people (sic) would drool all over for something like that. I know I would, I looked at PDF::Template quite a while ago and decided that, as it stood at that time, reading perlop.c was better for my mental health ;).
"All too often people confuse their being able to think with their actually having done so. A more pernicious mistake does not exist."
--Moraven Tollo in Michael A. Stackpole's A Secret Atlas