Поскольку вы используете XSL FO, если вы намерены использовать это в качестве нумерации страниц в документе для печатных страниц, вам не нужно ничего, как вы пытаетесь сделать.
Вы видите в своем шаблоне, у вас есть initial-page-number="1"
на <fo:page-sequence>
. Просто установите для этого значение 1120, а не 1, и позвольте форматировщику выполнить свою работу и применить номера страниц. Вы используете <fo:page-number/>
для вывода номера страницы.
Теперь, если вы ищете решение, в котором вы можете обрабатывать эту информацию последовательно, то FOP предоставляет журнал или вероятный вызов API или регистратор, в котором вы можете проверить результаты формата и получить количество страниц, которые в результате. Вы можете использовать это число в качестве входных данных для следующего цикла. Я бы использовал <xsl:param>
, переданный в XSLT, чтобы установить следующий начальный номер страницы.
Без более глубокого кодирования в формататоре, который он запускает в XSL FO для вывода на стадию, вы не можете использовать номер страницы в любом случае и, конечно, не на стадии XSLT, потому что, если вы не контролируете всю нумерацию страниц (то есть вы вводите разрывы страниц, и вы гарантируете, что содержимое между ними короче страницы), вы не представляете, что такое разбивка на страницы в XSLT.