I posted a question about pdf generation from templates about a year ago, it might be worth reading the answers I got.
My eventual solution was to to go via SVG. I prepared an SVG template by drawing it in a graphics program and then opening the SVG file in an editor and replacing elements with template tags. I then filled in the template with perl Text::Template (I dare say other templating systems such as Catalyst's favourite Template::Toolkit would work as well). Once I had an SVG file I fed it through svg2pdf (that comes with Inkscape) to convert to PDF.
Bear in mind that my project involved a lot of vector & bitmaped graphics, and not a lot of text. If you need to put a lot of text into your PDF files then my solution may not work as well as you are likely to have to do things like line breaks yourself.