2012-02-28 11 views
0

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

http://www.sagehill.net/docbookxsl/MultiColumns.html (перемещаясь вниз «столбец Страницы охватывает«раздел)

Действительно, так как я использую процессор XEP, он не позволит мне поставить @ пядь = „все“ атрибут в внешнем fo: block, который содержит мой элемент таблицы, поскольку fo: block не является прямым дочерним элементом fo: flow. Поэтому, используя предлагаемое решение в этой статье, я поменял свой содержащий fo: block на fo: wrapper , и теперь Ф.О. выглядит следующим образом:

<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> 

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

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

ответ

1

Обходной путь, о котором вы говорите, означает, что блок <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> 
       ... 
+0

большое спасибо. – Kevin

+0

Добро пожаловать. Удачи вам в вашей таблице стилей! – mzjn

+0

Вы можете посмотреть мой следующий вопрос здесь: http: //stackoverflow.com/questions/9710903/put-a-spanning-table-in-its-own-page-sequence – Kevin

1

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

+0

Если я перехожу, что ВКИ: обертка в фо: блок, я до сих пор не могу использовать @span на он, поскольку он не является прямым потомком fo: flow. Можете ли вы предложить способ решения этого? – Kevin

Смежные вопросы