Согласно странице справки FOP о FO :
... Для этого в XSL 1.0 поместите пустой блок с идентификатором вконец потока:
<fo:flow ...>
...
<!-- block, NOT page-sequence -->
<fo:block id="last-page"/>
</fo:flow>
Получить номер последней страницы следующим образом:
<!-- page-number-citation, NOT page-number-citation-last !!! -->
<fo:page-number-citation ref-id="last-page"/>
Этот не работает в определенных ситуациях: несколько последовательностей страниц, начальный номер страницы, отличный от 1, или принудительное задание определенного количества страниц, что приводит к созданию пустых страниц в конце.
В XSL 1.1 вы получаете другойвозможность сделать это: убедиться, что на последовательности страниц установлен идентификатор "id" и сослаться на него с помощью fo: page-number-citation -last .Сначала последовательность страниц:
<!-- page-sequence, NOT block-->
<fo:page-sequence id="seq1" ...
После этого ссылайтесь на последнюю страницу, сгенерированную последовательностью страниц:
<!-- page-number-citation-last, NOT page-number-citation !! -->
<fo:page-number-citation-last ref-id="seq1"/>
Предупреждение : Не существует надежного способа получить реальное общее количество страниц с помощью механизмов FO.Вы можете получить только номера страниц.
Так что в вашем случае, пожалуйста:
- Измените
<fo:page-number-citation-last/>
на <fo:page-number-citation/>
. Или, альтернативно, введите атрибут id="lastPage"
в вашем (последнем) page-sequence
, а не в вашем последнем block
, тогда вы можете обратиться к нему через:
<fo:page-number-citation-last ref-id="last-page"/>`