2013-02-14 56 views
10

現在,我有大約12列,它們都是完全相同的寬度。問題是有些列不需要太多空間。如何獲得適合他們內容的列?這些列需要是動態寬度。XSL-FO動態表列寬度

我已經試過

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

似乎沒有這樣的伎倆。

+0

如果您正在使用FOP,它不會工作。 FOP不支持'table-layout =「auto」'。 – mzjn 2013-02-14 14:45:25

+0

謝謝!對這個問題本身有什麼想法? – SeanWM 2013-02-14 14:48:13

+1

購買支持'table-layout =「auto」'的商業格式化器,例如XEP(http://www.renderx.com/tools/xep.html)。還有非商業用途的免費個人和學術版:http://www.renderx.com/download/personal.html。 – mzjn 2013-02-14 14:52:07

回答

13

不幸的是,我沒有找到一個簡單的方法來獲得動態列寬。我結束了這個:

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

我指定的第一列,因爲數據永遠不會改變。其餘的我會開放以適應他們的內容。以我現在需要的方式工作。

1

您也可以用「百分比單位」來指定單位。工作正常,我...

<fo:table-column column-number="1" column-width="75%" /> 
<fo:table-column column-number="2" column-width="25%" /> 
-1
  1. 使用屬性「比例列寬」冗長列和剩餘的列讓被默認。
  2. 檢查每列的寬度,如果比其他列長,請提供多大倍(如2倍或3倍或4.5倍甚至更多)。

防爆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"/>