I have recently started to experiment with XSL-FO; It seems well supported, all XSL-FO vendors are very helpful, and you can start with little (or no) money.
My company bought a heavy duty (40k pages per minute) IBM printer back in the 90's but its software is now quite obsolete.
XSL-FO looks promising, but I am wondering if older, well established technologies may be better. The Chief Architect of ISIS Papyrus which builds such software, believes that XSL-FO is just a marketing pitch.