1

ページの下部 (A4 形式) にテーブルを印刷しようとしていますが、その代わりに、margin-bottom プロパティの事実にもかかわらず、最後のテーブルが前の要素の後に印刷され続けます。さらに、フッターを設定しようとすると (fo:footnote と fo:inline を使用)、このフッターもページの下部ではなく、最後の要素の下に表示されます。

    <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:template match="/">
        <fo:root>
            <fo:layout-master-set >
                <fo:simple-page-master master-name="simple" page-height="29.7cm" page-width="21cm"
                                       margin-top="2cm" margin-bottom="2cm" margin-left="2cm" margin-right="2cm">
                    <fo:region-body />
                    <!--<fo:region-after region-name="first-page-footer" margin-bottom="2cm" extent="11in" display-align="after"/>-->
                </fo:simple-page-master>
            </fo:layout-master-set>
            <fo:page-sequence master-reference="simple">
                <xsl:call-template name="mainTemplate"/>
            </fo:page-sequence>
        </fo:root>
    </xsl:template>

    <xsl:template name="mainTemplate">

        <xsl:variable name="newline">
            <xsl:text>&#160;</xsl:text>
        </xsl:variable>
        <xsl:variable name="logoURL" >
            <xsl:value-of select="/export/logotype"/>
        </xsl:variable>
        <xsl:variable name="signatureURL">
            <xsl:value-of select="/export/signature"/>
        </xsl:variable>

        <fo:flow flow-name="xsl-region-body">
            <fo:block space-before="2cm" space-after="2cm" font-size="12pt"
                      font-family="Times New Roman">

                <fo:block  space-before="2cm" space-after="2cm" >
                    <fo:table  border-color="black" border-style="solid"
                          border-width="0.5pt"  >
                        <fo:table-column column-width="3cm" border-color="black" border-style="solid"
                                     border-width="0.5pt"/>
                        <fo:table-column column-width="3cm" border-color="black" border-style="solid"
                                     border-width="0.5pt"/>
                        <fo:table-column column-width="3cm" border-color="black" border-style="solid"
                                     border-width="0.5pt"/>
                        <fo:table-column column-width="8cm" border-color="black" border-style="solid"
                                     border-width="0.5pt"/>
                        <fo:table-body>
                            <fo:table-row>
                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block font-weight="bold" text-align="center">Number</fo:block>
                                </fo:table-cell>
                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block font-weight="bold" text-align="center">Date</fo:block>
                                </fo:table-cell>
                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block font-weight="bold" text-align="center">Bill</fo:block>
                                </fo:table-cell>
                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block font-weight="bold" text-align="center">Owner</fo:block>
                                </fo:table-cell>
                            </fo:table-row>

                            <xsl:for-each select="/export/Cars/car">
                                <xsl:variable name="param1" select="number"/>
                                <xsl:variable name="param2" select="date"/>
                                <xsl:variable name="param3" select="bill"/>
                                <xsl:variable name="param4" select="owner"/>
                                <fo:table-row>
                                    <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt"
                                               padding-left="3pt">
                                        <fo:block text-align="center">
                                            <xsl:value-of select="$param1"/>
                                        </fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt"
                                               padding-left="3pt" padding-right="3pt" display-align="center">
                                        <fo:block text-align="center">
                                            <xsl:value-of select="$param2"/>
                                        </fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt"
                                               padding-left="3pt" padding-right="3pt" display-align="center">
                                        <fo:block text-align="center">
                                            <xsl:value-of select="$param3"/>
                                        </fo:block>
                                    </fo:table-cell >
                                    <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt"
                                               padding-left="3pt" padding-right="3pt" display-align="center">
                                        <fo:block text-align="center">
                                            <xsl:value-of select="$param4"/>
                                        </fo:block>
                                    </fo:table-cell>
                                </fo:table-row>
                            </xsl:for-each>
                        </fo:table-body>
                    </fo:table>
                </fo:block>

                <fo:block>
                    <xsl:value-of select="$newline"/>
                </fo:block>
                <fo:block>
                    <xsl:value-of select="$newline"/>
                </fo:block>

                <fo:block space-after="2cm" >
                    <fo:table  border-color="black" border-style="solid"
                               border-width="0.5pt"  >
                        <fo:table-column column-width="3cm" border-color="black" border-style="solid" border-width="0.5pt"/>
                        <fo:table-column column-width="14cm" border-color="black" border-style="solid" border-width="0.5pt"/>
                        <fo:table-body>
                            <fo:table-row>
                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block font-weight="bold" text-align="center">Graph 6</fo:block>
                                </fo:table-cell>

                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block  text-align="center"><xsl:value-of select="/export/graph6"/></fo:block>
                                </fo:table-cell>
                            </fo:table-row>
                            <fo:table-row>
                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block font-weight="bold" text-align="center">Graph 5</fo:block>
                                </fo:table-cell>

                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block  text-align="center"><xsl:value-of select="/export/graph5"/></fo:block>
                                </fo:table-cell>
                            </fo:table-row>
                            <fo:table-row>
                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block font-weight="bold" text-align="center">Graph 4</fo:block>
                                </fo:table-cell>

                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block  text-align="center"><xsl:value-of select="/export/graph4"/></fo:block>
                                </fo:table-cell>
                            </fo:table-row>
                            <fo:table-row>
                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block font-weight="bold" text-align="center">Graph1</fo:block>
                                </fo:table-cell>

                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block  text-align="center"><xsl:value-of select="/export/graph1"/></fo:block>
                                </fo:table-cell>
                            </fo:table-row>
                            <fo:table-row>
                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block font-weight="bold" text-align="center">Graph 2</fo:block>
                                </fo:table-cell>

                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block  text-align="center"><xsl:value-of select="/export/graph2"/></fo:block>
                                </fo:table-cell>
                            </fo:table-row>
                            <fo:table-row>
                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block font-weight="bold" text-align="center">Graph3</fo:block>
                                </fo:table-cell>

                                <fo:table-cell border-color="black" border-style="solid" border-width="0.5pt">
                                    <fo:block  text-align="center"><xsl:value-of select="/export/graph3"/></fo:block>
                                </fo:table-cell>
                            </fo:table-row>
                        </fo:table-body>
                    </fo:table>
                </fo:block>

                <fo:block>
                    <xsl:value-of select="$newline"/>
                </fo:block>
                <fo:block>
                    <xsl:value-of select="$newline"/>
                </fo:block>

                <fo:block text-align="justify" >
                    <xsl:value-of select="/export/contactInfo"/>
                </fo:block>

                <fo:block>
                    <xsl:value-of select="$newline"/>
                </fo:block>

                <fo:table  border-width="0" margin-bottom="3cm" >
                    <fo:table-column column-width="5.6cm" />
                    <fo:table-column column-width="5.6cm" />
                    <fo:table-column column-width="5.6cm" />
                    <fo:table-body>
                        <fo:table-row>
                            <fo:table-cell display-align="after">
                                <fo:block text-align="left">
                                    Occupation <xsl:value-of select="/export/occupation"/>
                                </fo:block>
                            </fo:table-cell>
                            <fo:table-cell display-align="before">
                                <fo:block text-align="center">
                                    Signature <fo:external-graphic src='url({$signatureURL})'/>
                                </fo:block>
                            </fo:table-cell>
                            <fo:table-cell display-align="after">
                                <fo:block text-align="left">
                                    Name <xsl:value-of select="/export/name"/>
                                </fo:block>
                            </fo:table-cell>
                        </fo:table-row>
                    </fo:table-body>
                </fo:table>

            </fo:block>

        </fo:flow>
    </xsl:template>

</xsl:stylesheet>

.doc 形式の出力ファイル
ペーストビンのコード
脚注の問題は、コンテンツを脚注に入れようとしている場合 (前のコード セクションの最後の fo:table の代わりに fo:block ステートメントを配置):

...
<fo:block>
            The quick brown fox jumps over a lazy dog. The quick brown fox jumps over
            a lazy dog. The quick brown fox jumps over a lazy dog.
        <fo:footnote>
            <fo:inline baseline-shift="super"  font-size="10pt">
                (*)
            </fo:inline>
            <fo:footnote-body>
                <fo:block>
                    * This is the first footnote
                </fo:block>
            </fo:footnote-body>
        </fo:footnote>
            The quick brown fox jumps over a lazy dog. The quick brown fox jumps over
            a lazy dog.
 </fo:block>
</fo:flow>
</xsl:template>
</xsl:stylesheet>

出力結果は次のようになります。

...
速い茶色のキツネが怠惰な犬を飛び越えます。素早い茶色のキツネが怠け者の犬を飛び越えます。素早い茶色のキツネが怠け者の犬を飛び越えます。(*) 機敏な茶色のキツネが怠け者の犬を飛び越えます。素早い茶色のキツネが怠け者の犬を飛び越えます。
※最初の脚注です

ページの下部ではなく、前のテキストの直後に配置された脚注文字列

4

2 に答える 2

3

プロパティは、テーブルのmargin-bottom下にスペースが必要であることを示します。ページの下部にオブジェクトを配置することとは関係ありません。テーブルをページの下部に表示する場合は、次の 2 つのオプションがあります。

  1. body 領域ではなく、 region-after areaに挿入します。
  2. block-container絶対位置を持つでラップします。
于 2013-10-22T07:33:46.653 に答える
1

ページの下部に必要なコンテンツを、空のインライン引用を含む空のブロックの脚注構造に入れます。ページの下部がどこにあるかは、フォーマッタに任せてください。文書の最後のページの下部にある法的免責事項などについては、これが適切なアプローチであると学生に伝えています。

絶対配置のブロック コンテナーの問題は、そのサイズが本体と重なる場合、本体のコンテンツがそれを上書きする可能性があることです。本文コンテンツがそのコンテンツに対して縮小されている場合は、ページ ジオメトリのさまざまな領域に対応する必要があります。

脚注に放り込むのが最も簡単だと思います。

于 2013-10-22T12:37:21.953 に答える