XSL FO продолжение / запуск таблиц, маркеры в нижнем колонтитуле - PullRequest
4 голосов
/ 30 ноября 2011

Я использую маркеры и «маркер таблицы извлечения» в XSL-FO для создания нижних колонтитулов в преобразовании PDF.

Мне нужно решение, в котором таблица с одним столбцом имеет «чистый» нижний колонтитул, а таблица с несколькими столбцами - нижний колонтитул с добавленным текстом («продолжение») перед каждым разрывом столбца. Добавленный текст должен применяться только до разрыва страницы, если таблица разбивается между столбцами.

Мой текущий код почти делает это. Он хорошо работает для многостолбцовых таблиц, но для одностолбцовой таблицы добавляется текст «продолжение», даже если таблица не разбивается.

Код:

  <fo:table-body>
    <fo:table-row>
      <fo:table-cell>
        <fo:block>
          <fo:marker marker-class-name="footer-continued">(continued)</fo:marker>
        </fo:block>
        <fo:block>
          <xsl:text>Contents</xsl:text>
        </fo:block>
        <fo:block>
          <fo:marker marker-class-name="footer-continued"></fo:marker>
        </fo:block>
      </fo:table-cell>
    </fo:table-row>
  </fo:table-body>

  <fo:table-footer>
    <fo:table-row>
      <fo:table-cell>
        <fo:block>
          <fo:retrieve-table-marker retrieve-class-name="footer-continued" 
                                    retrieve-position="first-including-carryover"
                                    retrieve-boundary-within-table="table"/>
        </fo:block>
      </fo:table-cell>
    </fo:table-row>
  </fo:table-footer>

1 Ответ

3 голосов
/ 01 декабря 2011

Хорошо, это сработало для меня:

я поменялся

retrieve-position="first-including-carryover"

для

retrieve-position-within-table="last-ending-within-page"
...