I would use
Prince XML for this personally. I think it would do all you want. It's free for non-commercial use. What makes it particularly attractive is that, with the right settings, you'll get some relatively advanced typographical features like kerning/hinting, TeX-style end of line hyphenation, ligatures, etc.