Поместите блок XSL-FO на следующую страницу вместо того, чтобы разбивать его по страницам

Я создал шаблон XSL-FO, который печатает несколько блоков, содержащих тексты, которые изменяются динамически. Иногда блок разделяется на две страницы, потому что на странице недостаточно места. Есть ли способ поместить блок на следующую страницу вместо того, чтобы разбивать его по страницам, если он не подходит? Я попытался поместить его в таблицу с keep-Together="Always", но тогда каждый текст находится на одной строке (без переноса строк) и переполняет правое поле страницы, где оно исчезает. Заранее спасибо!

  <fo:table table-layout="fixed" width="100%">
    <fo:table-column column-width="proportional-column-width(1)"/>
    <fo:table-body>
      <fo:table-row keep-together="always">
        <fo:table-cell
          border-width="1px"
          border-color="black"
          border-style="solid"
          background-color="#ffffff"
          text-align="left">
          <fo:block>
            Text 1
          </fo:block>
          <fo:block>
            Text 2
          </fo:block>
          <fo:block>
            Text 3
          </fo:block>
        </fo:table-cell>
      </fo:table-row>
    </fo:table-body>        
  </fo:table>   

1 ответ

Решение

Скорее всего, вы могли бы использовать page-break-inside атрибут:

<fo:block page-break-inside="avoid">
  ...
</fo:block>

Там также существуют другие page-break атрибутов. Возьми лучший:

Другие вопросы по тегам