2013-02-14 19 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

+0

ありがとう!質問自体のための任意のアイデア? – SeanWM

+1

XEP(http://www.renderx.com/tools/xep.html)などの 'table-layout =" auto "'をサポートする市販のフォーマッタを購入してください。非営利目的での個人用および学術用の無料版もあります:http://www.renderx.com/download/personal.html。 – mzjn

答えて

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

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