Задать атрибут span в многостолбцовом xslfo с помощью процессора XEP?

Сейчас я занимаюсь разработкой таблицы стилей xslfo, которая устанавливает отображение содержимого в 2 столбца с использованием процессора RenderX XEP. Тем не менее, я все еще хочу оставить таблицы в виде 1 столбца, так как они намного шире. Я нашел эту статью чрезвычайно полезной:

http://www.sagehill.net/docbookxsl/MultiColumns.html (перейдите к разделу "Области столбцов страницы")

Действительно, поскольку я использую процессор XEP, он не позволит мне поместить атрибут @span="all" во внешний fo:block, содержащий мой элемент таблицы, поскольку этот fo:block не является прямым потомком fo: течь. Итак, используя предложенное в этой статье решение, я изменил содержащийся fo:block на fo:wrapper, и теперь fo выглядит так:

 <fo:wrapper font-size="80%" id="table_1ECAD9B3F5FC44A68240330AEFC1C2E2" space-after.optimum="1em" span="all">
  <fo:table border-bottom-color="black" border-bottom-style="solid" border-bottom-width="1pt" border-left-color="black" border-left-style="solid" border-left-width="1pt" border-right-color="black" border-right-style="solid" border-right-width="1pt" border-top-color="black" border-top-style="solid" border-top-width="1pt" id="" space-after.optimum="5pt" space-before.optimum="5pt" table-layout="fixed" width="100%">
 ....
  </fo:table>
 </fo:wrapper>

В процессе генерации теперь нет предупреждающего сообщения, похоже, что он принимает @span="all" для fo:wrapper. Однако в полученном PDF-файле таблица по-прежнему разделена на два столбца, как и раньше. В статье упоминается Docbook xslfo, в то время как я использую пользовательский xslfo, поставляемый с XMetal.

Интересно, есть ли у кого-нибудь из экспертов аналогичный опыт (использование XEP, настройка @span в среде столбцов mutil) для обмена?

2 ответа

Решение

Обходной путь, на который вы ссылаетесь, означает, что <fo:block span="all"> блок сохраняется как есть, и что все его <fo:block> предки заменены <fo:wrapper>,

Структура, как эта,

<fo:page-sequence master-reference="my-page">
  <fo:flow flow-name="xsl-region-body">
     <fo:block>
        <fo:block>
           <fo:block span="all">
             <fo:table>
              ...

нужно заменить на это:

<fo:page-sequence master-reference="my-page">
  <fo:flow flow-name="xsl-region-body">
     <fo:wrapper>
        <fo:wrapper>
           <fo:block span="all">
             <fo:table>
              ...

Атрибут " span" применяется только к fo:block и fo:block-container и только в том случае, если они являются прямыми потомками fo:flow. Итак, ваша fo: обертка должна стать fo:block.

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