Как скрыть заголовок на Xsl Fo, переполнение страницы - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть заголовок, тело и нижний колонтитул, настроенные для последовательности страниц Xsl Fo.На этой странице есть определенные элементы в блоках со значением keep-together.within-page, равным 1.По большей части это работает очень хорошо, но я заметил, что когда материал, который будет занимать целую страницу или более абсолютно должен сломаться, он попадет на новую страницу и затем будет вырезан (что хорошо), но затем заголовокв середине этого процесса все выглядит немного грубым / запутанным (не очень хорошо), так как все, что остается, рисуется на следующей странице.

Так что мне интересно, есть ли способ подавить заголовок напереполнение контента на следующей странице?

Или есть какой-то способ с альтернативными последовательностями страниц или что-то, чтобы добиться того, чего я хочу?

Извините за неопределенность здесь и отсутствие текущего рабочего представления о том, что происходит.Я очень плохо знаком с Xsl Fo, и большая часть нашего рабочего кода находится в абстрагированной среде, но если бы я знал правильные директивы или если бы это было возможно, я уверен, что смогу внедрить их в среду и заставить работать.

Редактировать: я приложил картинку, чтобы, надеюсь, прояснить, что происходит When a block overflows from one page to the next, the header still shows up.

1 Ответ

0 голосов
/ 21 сентября 2018

Вы можете поместить содержимое, которое вы хотите скрыть, в fo:marker и использовать fo:retrieve-marker в fo:static-content, который поступает в регион 'region-before'.

Хитрость заключается в том, чтобыкопия «реального» * ​​1006 * перед каждым из блоков с keep-together, а также пустая fo:marker с тем же marker-class-name, что и первая вещь внутри блока.(Я не знаю, на что похожа ваша разметка XSL-FO, но вам может понадобиться поставить fo:wrapper вокруг каждого блока в качестве места для размещения «настоящего» маркера.)

Если retrieve-positionравен first-including-carryover (см. https://www.w3.org/TR/xsl11/#retrieve-position),, тогда вы должны получить пустое значение fo:marker для блоков, которые выходят за границы страницы, и получить 'real' fo:marker на других страницах.

...