Taky jsem s tím koketoval, ale vždycky mi připadlo moc složité programově řešit vzhled dokumentů, takže jsem nakonec skončil u toho že pomocí OpenOffice vytvořím dokument, který naformátuju tak jak si přeje uživatel, potom obohatím content.xml o značky pro šablonovací systém (používám TT2, ale je to jedno co se použije) a když to z web serveru posílám na klienta tak pomocí Archive::Zip rozpakuju OO šablonu content.xml proženu to přes TT2 znovu zapakuju pomocí Archive::Zip a posílám výsledných dokument na klienta. Docela se mi to osvědčílo.