2012-02-28 3 views
0

RenderX XEPプロセッサを使用してコンテンツを2列表示に設定するxslfoスタイルシートを開発中です。しかし、私はまだテーブルを1列の表示にしておくほうがずっと広いですから。私は、この記事は非常に役に立った:XEPプロセッサを使用してマルチカラムxslfoのspan属性を設定していますか?

http://www.sagehill.net/docbookxsl/MultiColumns.html(セクションの「ページ列がまたがる「まで移動します)

確かに、私はXEPプロセッサを使用しておりますので、それは私が= 『すべて』 @スパンを置くことができません。 fo::blockはfo:flowの直接の子ではないので、私のテーブル要素を含んでいる外側のfo:blockの属性は、fo: 、そして今、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> 

警告メッセージは、生成過程で、今はありませんがそうですfo:wrapperの@ span = "all"とみなしてください。しかし、結果として得られるpdfでは、テーブルは以前のように2つのカラムに分割されます。この記事ではDocbook xslfoを参照していますが、XMetalに付属のカスタムxslfoを使用しています。

エキスパートが(XEPを使用し、mutil列環境で@spanを設定して)類似した経験を共有している場合、

答えて

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へのラッパー::ブロック、私はまだ@spanに使用することはできません私はfoをすることを有効にした場合

<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:ラッパーはfo:blockになる必要があります。

+0

それはfo:flowの直接の子ではないからです。あなたはこれを解決する方法を提案できますか? – Kevin

関連する問題