1

3 つの列を持つテーブルがあり、長い段落を最初の列から 2 番目の列、そして 3 番目の列に動的に流れさせようとしています。現在、最初の列が 2 番目の列に移動する代わりにオーバーフローすると、テーブルは次のページに続くため、1 列分のデータだけでいっぱいになったページがいくつかあります。どうすればこれを修正できますか? これが私のコードです(詳細を編集しました)。ここで、text1-text8 はテキストの動的段落です。

<fo:table table-layout="fixed" width="100%" border-collapse="collapse">
    <fo:table-column column-width="33.333%" column-number="1"/>
    <fo:table-column column-width="33.333%" column-number="2"/>
    <fo:table-column column-width="33.333%" column-number="3"/>
    <fo:table-body>
        <fo:table-row>
            <fo:table-cell padding="2pt">
                <fo:block>
                    <fo:inline font-weight="bold" font-size="10pt">TEXT</fo:inline>
                </fo:block>
                <fo:block font-weight="bold" font-size="10pt">TEXT</fo:block>
                <fo:block font-weight="bold" font-size="10pt">TEXT</fo:block>
                <fo:block font-weight="bold" font-size="10pt">
                    <xsl:value-of select="@day"/>
                    <xsl:text> </xsl:text>
                    <xsl:value-of select="@month"/>
                    <xsl:text> </xsl:text>
                    <xsl:value-of select="@year"/>
                    <xsl:text> </xsl:text>
                </fo:block>
            </fo:table-cell>
            <fo:table-cell padding="2pt">
                <fo:block text-align="right" font-size="14pt"> *</fo:block>
            </fo:table-cell>
            <fo:table-cell padding="2pt">
                <fo:block>
                    <fo:inline font-weight="bold" font-size="14pt">TEXT</fo:inline>
                    <fo:inline font-weight="bold" font-size="14pt">
                        <xsl:value-of select="@data"/>
                    </fo:inline>
                </fo:block>
                <fo:block>&#x00A0;</fo:block>
                <fo:block>&#x00A0;</fo:block>
                <fo:block>
                    <fo:inline font-weight="bold" font-size="12pt">TEXT</fo:inline>
                    <fo:inline font-weight="bold" font-size="12pt">
                        <xsl:value-of select="@day"/>
                        <xsl:text> </xsl:text>
                        <xsl:value-of select="@month"/>
                        <xsl:text> </xsl:text>
                        <xsl:value-of select="@year"/>
                    </fo:inline>
                </fo:block>
            </fo:table-cell>
        </fo:table-row>

        <fo:table-row height="18px">
            <fo:table-cell padding="2pt">
                <fo:block/>
            </fo:table-cell>
            <fo:table-cell padding="2pt">
                <fo:block/>
            </fo:table-cell>
            <fo:table-cell padding="2pt">
                <fo:block/>
            </fo:table-cell>
        </fo:table-row>

        <fo:table-row>
            <fo:table-cell padding="2pt" number-columns-spanned="3">
                <fo:block text-align="center" font-size="12pt" font-weight="bold">
                    <xsl:value-of select="data"/>
                </fo:block>
            </fo:table-cell>
        </fo:table-row>

        <fo:table-row>
            <fo:table-cell padding="2pt">
                <fo:block/>
            </fo:table-cell>
            <fo:table-cell padding="2pt">
                <fo:block/>
            </fo:table-cell>
            <fo:table-cell padding="2pt">
                <fo:block/>
            </fo:table-cell>
        </fo:table-row>

        <fo:table-row>
            <fo:table-cell padding="2pt" number-columns-spanned="3">
                <fo:block text-align="center" font-size="14pt" font-weight="bold">
                    <xsl:value-of select="moredata"/>
                </fo:block>
            </fo:table-cell>
        </fo:table-row>

        <fo:table-row>
            <fo:table-cell padding="2pt" number-columns-spanned="3">
                <fo:block>
                    <fo:leader leader-pattern="rule" leader-length="100%"/>
                </fo:block>
            </fo:table-cell>
        </fo:table-row>

        <fo:table-row>
            <fo:table-cell padding="2pt">
                <fo:block>
                    <fo:external-graphic content-width="217.429px" scaling="uniform">
                        <xsl:attribute name="src">
                            <xsl:text>url("</xsl:text>
                            <xsl:value-of select="image"/>
                            <xsl:text>.png")</xsl:text>
                        </xsl:attribute>
                    </fo:external-graphic>
                </fo:block>
                <fo:block>
                    <fo:leader leader-pattern="rule" leader-length="100%"/>
                    <fo:inline font-size="10pt" font-weight="bold">TEXT</fo:inline>
                    <fo:inline font-size="10pt" fo:font-weight="normal">
                        <xsl:value-of select="text1"/>
                    </fo:inline>
                </fo:block>
                <fo:block/>
                <fo:block>
                    <fo:inline font-size="10pt" font-weight="bold">TEXT</fo:inline>
                    <fo:inline font-size="10pt">
                        <xsl:value-of select="text2"/>
                    </fo:inline>
                </fo:block>
                <fo:block/>
                <fo:block>
                    <fo:inline font-weight="bold" font-size="10pt">TEXT</fo:inline>
                    <fo:inline font-size="10pt">
                        <xsl:value-of select="text3"/>
                    </fo:inline>
                </fo:block>
                <fo:block>
                    <fo:inline font-size="10pt" font-weight="bold">TEXT</fo:inline>
                    <fo:inline font-size="10pt">
                        <xsl:value-of select="text4"/>
                    </fo:inline>
                </fo:block>
                <fo:block>
                    <fo:inline font-size="10pt" font-weight="bold">TEXT</fo:inline>
                    <fo:inline font-size="10pt">
                        <xsl:value-of select="text5"/>
                    </fo:inline>
                </fo:block>
                <fo:block>&#x00A0;</fo:block>
                <fo:block>
                    <fo:inline font-size="10pt" font-weight="bold">TEXT</fo:inline>
                    <fo:inline font-size="10pt">
                        <xsl:value-of select="text6"/>
                    </fo:inline>
                </fo:block>
                <fo:block>&#x00A0;</fo:block>
                <fo:block>
                    <fo:inline font-size="10pt" font-weight="bold">TEXT</fo:inline>
                    <fo:inline font-size="10pt">
                        <xsl:value-of select="text7"/>
                    </fo:inline>
                </fo:block>
                <fo:block>&#x00A0;</fo:block>
                <fo:block>
                    <fo:inline font-size="10pt" font-weight="bold">TEXT</fo:inline>
                    <fo:inline font-size="10pt">
                        <xsl:value-of select="text8"/>
                    </fo:inline>
                </fo:block>
            </fo:table-cell>
        </fo:table-row>

        <fo:table-row>
            <fo:table-cell padding="2pt" number-columns-spanned="3">
                <fo:block>
                    <fo:leader leader-pattern="rule" leader-length="100%"/>
                </fo:block>
            </fo:table-cell>
        </fo:table-row>
    </fo:table-body>
</fo:table>
4

3 に答える 3

0

列を含むテキストを作成するには、列を含める本文を指定する必要があります。次に<fo:block span=all>、すべての列にまたがる必要がある要素に使用します。

ドキュメントの場合、すべての列にまたがる要素を設定する必要性を最小限に抑えるために、列が必要なセクション用に個別のsimple-page-masterを作成するのが最適な場合があります。

于 2009-11-17T21:42:56.470 に答える
0

HTMLと同様に、XSL-FOのテーブルは表形式のデータ用です。ページ本文のを使用して、次のテキストを継続する必要があります。

    <fo:simple-page-master master-name="blarg">
        <fo:region-body column-count="3" column-gap="0.5in"/>
    </fo:simple-page-master>
于 2009-11-14T00:15:25.173 に答える
0

使用できます

<fo:simple-page-master master-name="blarg">
    <fo:region-body column-count="3" column-gap="0.5in"/>
</fo:simple-page-master>

そして主fo:flowに次のようなものがあります:

<fo:block span="all>Some text that will span across all columns</fo:block>
<fo:block>some code that will flow in 3 columns</fo:block>
<fo:block span="all>Some text that will (again) span across all columns</fo:block>

同じページに 2 列と 3 列の両方が必要な場合は、いずれかのベンダーの拡張機能が必要になります。必要な場合はお知らせください。探してみます。

于 2010-01-16T17:51:24.777 に答える