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

Я создал шаблон 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 Ответ

14 голосов
/ 28 декабря 2011

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

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

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

...