Зачем FOP печатать мне лишнюю пустую страницу, когда в ней ничего нет? - PullRequest
0 голосов
/ 03 июля 2019

Добрый день! !!

У меня небольшая, но раздражающая проблема.Когда я печатаю свой код, FOP дает мне PDF с дополнительной пустой страницей (последней), когда таблица в теле останавливается на предпоследней странице.Я не понимаю, почему, код чистый, я покажу вам там:

    <xsl:variable name="year" select="substring($DateTime,1,4)"/>
    <xsl:variable name="month" select="substring($DateTime,6,2)"/>
    <xsl:variable name="day" select="substring($DateTime,9,2)"/>


    <xsl:value-of select="$day"/>
    <xsl:value-of select="'-'"/>
    <xsl:value-of select="$month"/>
    <xsl:value-of select="'-'"/>
    <xsl:value-of select="$year"/>

    <xsl:variable name="time" select="substring($DateTime,12)"/>
    <xsl:if test="$time != ''">
        <xsl:variable name="hh" select="substring($time,1,2)"/>
        <xsl:variable name="mm" select="substring($time,4,2)"/>
        <xsl:variable name="ss" select="substring($time,7,2)"/>

        <xsl:value-of select="' '"/>
        <xsl:value-of select="$hh"/>
        <xsl:value-of select="':'"/>
        <xsl:value-of select="$mm"/>
        <xsl:value-of select="':'"/>
        <xsl:value-of select="$ss"/>
    </xsl:if>

</xsl:template>


<xsl:template match="documento">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
        <fo:page-sequence-master master-name="all-the-pages">
        <fo:repeatable-page-master-alternatives>
            <fo:conditional-page-master-reference master-reference="pages-normale" page-position="rest"/>
            <fo:conditional-page-master-reference master-reference="pages-normale" page-position="first"/>
            <fo:conditional-page-master-reference master-reference="my-last-page" page-position="last"/>
        </fo:repeatable-page-master-alternatives>
    </fo:page-sequence-master>
    <fo:simple-page-master master-name="pages-normale" page-width="297mm" page-height="210mm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="0.5cm"  margin-right="0.5cm">
        <fo:region-body margin-top="2cm" margin-bottom="1cm"/>
        <fo:region-before extent="1cm"/>
        <fo:region-after extent="1cm"/>
    </fo:simple-page-master>
    <fo:simple-page-master master-name="my-last-page"  page-width="297mm" page-height="210mm" margin-top="0.5cm" margin-bottom="0.5cm"  margin-left="0.5cm" margin-right="0.5cm">
                <fo:region-body   margin-top="2cm" margin-bottom="1cm"/>
                <fo:region-before  extent="1cm"/>
                <fo:region-after region-name="last-after" extent="1cm"/>
            </fo:simple-page-master>
</fo:layout-master-set>

        <xsl:variable name="pnum">
        <xsl:value-of select="pagnum"/>
        </xsl:variable>
<fo:page-sequence
        master-reference="all-the-pages"
        initial-page-number="{$pnum}"
        force-page-count="even"
        language="it"
        country="it">
        <fo:static-content flow-name="xsl-region-before">
        <fo:table  width="100%" border-width="0.5mm" margin-bottom="4mm" border-style="transparent">
        <fo:table-column  column-width="50%"/>
        <fo:table-column  column-width="50%"/>
        <fo:table-header>
                <fo:table-row>
                                <fo:table-cell border-style="normal">
                                    <fo:block font-size="15" font-style="oblique" font-weight="bold">
                                    <xsl:value-of select="azienda"/>            
                                    </fo:block>
                                    <fo:block font-size="8" font-style="normal" font-weight="normal">
                                    <xsl:value-of select="titolo"/>         
                                    </fo:block>
                                </fo:table-cell>
                                <fo:table-cell border-style="normal">
                                    <fo:block font-size="8" font-weight="normal" text-align="right">
                                    <fo:block >Pag. <fo:page-number/></fo:block>
                                    </fo:block>
                                </fo:table-cell>
                                </fo:table-row>
                </fo:table-header>
                <fo:table-body>
                <fo:table-row>
                                <fo:table-cell border-style="transparent">
                                    <fo:block>
                                            <fo:block font-size="8" text-align="left" font-weight="normal" >
                                            </fo:block>
                                    </fo:block>
                                </fo:table-cell>
                                <fo:table-cell border-style="transparent">
                                    <fo:block>
                                            <fo:block font-size="8" text-align="left" font-weight="normal" >
                                            </fo:block>
                                    </fo:block>
                                </fo:table-cell>
                </fo:table-row>             
                </fo:table-body>
        </fo:table>
        <fo:table> Header table </fo:table>
        </fo:static-content>
        <fo:static-content  flow-name="last-after">
        <fo:block>Last Footer</fo:block>
                        </fo:static-content>
    <fo:flow flow-name="xsl-region-body">

        <xsl:for-each select="riga">
        <fo:table>Body repeatble table every "riga" found in xml</fo:table>
        </fo:table>
        </xsl:for-each> 
    </fo:flow>
</fo:page-sequence>

Возможно, причина в том, что таблица для каждого итератора «для каждого» вместо строки внутритаблица?

Не знаю, надеюсь, кто-нибудь сможет мне объяснить.

Заранее спасибо.

Марко

...