Короткий ответ на этот вопрос заключается в том, что вы не можете достичь результата, которого вы добились, с прямой FO.
Это потому, что вы не можете программно получить доступ к номерам страниц, пока FOP не назначит их, поэтому ваш XSLT не знает, что они собой представляют.
Вы можете обойти это, используя двухпроходный подход, при котором вы манипулируете промежуточным форматом (после того, как он прошел через FOP) и повторно обрабатываете в целевой формат. По крайней мере, это тот подход, который я использую при использовании RenderX XEP (Other XSL-FO Renderer) с использованием его формата XEPOUT (я предполагаю, что FOPs работает аналогичным образом, см. http://xmlgraphics.apache.org/fop/0.94/intermediate.html).
Ура,
Майк