Стратегии комплексной нумерации страниц в PDF - PullRequest
1 голос
/ 26 января 2011

У меня есть вопрос о пользовательской нумерации страниц («точечные страницы») при создании PDF. Я использую XSLT для создания XSL-FO из экземпляра XML. Мой процессор XSLT - Saxon 9, а процессор XSL-FO - RenderX (4.18).

Мне нужно изменить нумерацию страниц, как только она достигнет определенной точки. (Номер страницы, который находится в нижнем колонтитуле (static-content).)

Допустим, у меня есть книга с несколькими главами. У каждой из этих глав есть номер главы. Этот номер главы основан на нумерации страниц.

Например, если номер главы - 2000, первой страницей главы будет 2001.

Это нормально до 998-й страницы (глава должна заканчиваться на четной странице). Например, если в главе 2000 было 1 002 страницы, нумерация страниц последних 6 страниц была бы:

2997, 2998, 2999, 3000, 3001, 3002

Это неверно, поскольку может быть глава 3000.

Мне нужно изменить нумерацию страниц после 998-й страницы. Используя мою главу 2000 с примером 1002 страницы, нумерация должна быть:

2997, 2998, 2998.1, 2998.2, 2998.3, 2998.4.

Вот что я делаю сейчас:

  • Я использую <fo:page-number> в моем fo:static-content.

  • Я устанавливаю номер начальной страницы (номер главы + 1), используя атрибут initial-page-number в элементе fo:page-sequence.

Если у меня есть , я могу манипулировать промежуточным файлом, который создает XEP (RenderX), но я думаю, что он может запутаться, и я не уверен, насколько надежным это будет. Кроме того, обновление оглавления, вероятно, станет кошмаром. (Промежуточный файл, созданный XEP, представляет собой XSL-FO с постобработкой; в нем уже созданы номера страниц.)

У кого-нибудь есть предложения по стратегиям, которые я могу использовать для достижения этой цели? Мне показалось, что я где-то читал, что могу использовать атрибут maximum-repeats в элементе page-sequence-master (например, maximum-repeats="998"), а затем использовать другую главную страницу, но я понятия не имею, как это сделать.

Спасибо!

...