4

XSL-FOとFOPを使用してPDFファイルを生成しようとしています。

高さを固定したテーブルを表示したい。テーブルは複数のページにまたがることができ、すべてのページで同じ高さにしたいと思います。

1ページのテーブルに固定の高さを定義することすらできないようです。

テーブルとテーブル本体の高さ、最小高さ、最大高さを設定してみましたが、何も考慮されていないようです。また、運が悪かったので、さまざまなXSL-FOプロセッサを使用してみました。

小さなサンプル:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:template match="/">
        <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
            <fo:layout-master-set>
                <fo:simple-page-master master-name="simpleA4" page-height="29.7cm" page-width="21cm" margin-top="1cm" margin-bottom="1cm" margin-left="2cm" margin-right="2cm">
                    <fo:region-body margin-bottom="20mm"/>
                    <fo:region-after extent="10mm"/>
                </fo:simple-page-master>
            </fo:layout-master-set>
            <fo:page-sequence master-reference="simpleA4">
                <fo:flow flow-name="xsl-region-body">
                    <fo:block>
                        <fo:table table-layout="fixed" width="100%" height="10cm" border-style="solid" border-width="0.02cm">
                            <fo:table-column column-width="20%"/>
                            <fo:table-column column-width="20%"/>
                            <fo:table-column column-width="60%"/>
                            <fo:table-body>
                                <fo:table-row>
                                    <fo:table-cell>
                                        <fo:block>Col1</fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell>
                                        <fo:block>Col2</fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell>
                                        <fo:block>Col3</fo:block>
                                    </fo:table-cell>
                                </fo:table-row>
                            </fo:table-body>
                        </fo:table>
                    </fo:block>
                </fo:flow>
            </fo:page-sequence>
        </fo:root>
    </xsl:template>
</xsl:stylesheet>
4

1 に答える 1

2

高さ、フォントサイズなどについて、個別にFOP作業する必要があります。<fo:table-cell次のことを行う必要があります。

  1. 各ページの表に用意するスペースにメモを取ってください
  2. そのスペースに収まる表の行数を計算します
  3. ループ内で、各ページが保持する行数を提供する各ページの新しいテーブルを作成します
  4. テーブルのヘッダーは最初のページに対してのみ構築され、他のページのテーブルはヘッドレスで構築される必要があることに注意してください。
于 2012-06-29T12:26:11.363 に答える