Ширина столбца динамической таблицы XSL-FO

Как сейчас, у меня около 12 столбцов, и все они имеют одинаковую ширину. Проблема в том, что некоторые столбцы не требуют такого большого пространства. Как получить столбцы в соответствии с их содержанием? Столбцы должны быть динамической.

Я пробовал

<fo:table table-layout="auto">

и

<fo:table-column column-width="proportional-column-width(1)" column-number="1"/>
<fo:table-column column-width="proportional-column-width(1)" column-number="2"/>
<fo:table-column column-width="proportional-column-width(1)" column-number="3"/>

Ничто, кажется, не делает трюк.

Ответ 1

К сожалению, я не нашел простой способ иметь динамические ширины столбцов. Я закончил с этим:

<fo:table-column column-number="1"  column-width="35pt" />
<fo:table-column column-number="2"  />
<fo:table-column column-number="3"  />
<fo:table-column column-number="4"  />
<fo:table-column column-number="5"  />
<fo:table-column column-number="6"  />
<fo:table-column column-number="7"  />
<fo:table-column column-number="8"  />
<fo:table-column column-number="9"  />
<fo:table-column column-number="10" />
<fo:table-column column-number="11" />
<fo:table-column column-number="12" />

Я указываю первый столбец, потому что данные никогда не будут меняться. Остальное я оставляю открытым, чтобы соответствовать их контенту. Работает так, как мне нужно, чтобы работать на данный момент.

Ответ 2

Вы также можете указать единицы измерения в единицах процента. Прекрасно работает для меня...

<fo:table-column column-number="1" column-width="75%" /> 
<fo:table-column column-number="2" column-width="25%" />

Ответ 3

  • Используйте атрибут "пропорциональная ширина столбца" для длинных столбцов, а остальные столбцы - по умолчанию.
  • Проверьте ширину каждого столбца, если она длинна, чем другие столбцы, укажите, сколько раз больше (например, 2 раза или 3 раза или 4,5 раза или даже больше).

Ex-1:

<fo:table-column column-number="1" column-width="proportional-column-width(3)"/>
<fo:table-column column-number="2"/>
<fo:table-column column-number="3"/>

Ex-2:

<fo:table-column column-number="1" column-width="proportional-column-width(3)"/>
<fo:table-column column-number="2" column-width="proportional-column-width(4)"/>
<fo:table-column column-number="3"/>