В качестве альтернативы вы можете сделать следующее: ваш исходный код xml -> docx -> xsl-fo -> pdf.
или проще: source xml -> Flat OPC XML -> xsl-fo -> pdf
Как только у вас есть документ docx (или документ XML с плоским OPC), преобразовать его в PDF с помощью FOP легко с помощью docx4j (поскольку вы упоминаете FOP, я предполагаю, что Java вам подходит).
Преимущество этого подхода заключается в том, что вы выводите на экран docx по своему усмотрению и получаете xsl fo "бесплатно".
Плоский OPC XML удобен, потому что это docx как один XML-файл (т.е. не нужно расстегивать молнию).Таким образом, вы можете легко создать его через XSLT.Чтобы увидеть его, создайте документ в Word 2007 и выберите «сохранить как .. xml».