使用apache FOP和Java在部分中缺少表边框

时间:2013-01-16 16:00:29

标签: java xslt pdf-generation apache-fop

我正在使用FOP v1.1rc1构建一个带有表格的PDF,如果它有超过一定数量的行,则会在最后一页上继续。

我使用的所有其他表工作正常但是这个表的延续在构建时会丢失底部边框的一部分。

我已尝试查看anti-aliasing中的Adobe,如其他地方所建议的那样,并且也关闭了smoothing-行,这些都不起作用。

我已经在下面列出了xslt并附加了一个样本image

以下是完整pdf的链接:Link to Generated PDF,该表是Executions表。

这是我使用xsl:fo块标签的唯一地方,所以我想知道那里是否有一些互动?

有谁知道为什么会这样?

此致 克里斯

更新

它不会让我上传一张图片作为新用户,但发生的事情是:

额外的表格部分从第2/3页开始,底部边框仅在4列中的1列上呈现。

更新2 我已经设法获得批准,在表格中添加一个重复的表格页脚,以便其中的边框覆盖表格边框中的此Gap作为临时修复。我还将相同的xml和xslt文件作为参数运行到二进制FOP构建器,并且实际上正确地构建了文件,因此当您将库作为应用程序的一部分包含时,问题就出现了。

我用来转换它的xslt是:

<xsl:if test="/root/ExtraExecutions">
<fo:table-row>
    <fo:table-cell number-columns-spanned="4" padding-left="3pt" padding-right="3pt"  padding-top="2pt"padding-bottom="2pt">
        <fo:block>
            ... Execution details continued on pages 2 to <fo:page-number-citation ref-                id="TheVeryLastPage"/>
        </fo:block>
    </fo:table-cell>
</fo:table-row>

结束表的一部分,然后在另一个表之后添加:

    <xsl:if test="/root/ExtraExecutions/Execution">
<fo:block id="continuedExecutions" break-before="page">

    <fo:table table-layout="fixed" width="100%" border-collapse="collapse" border="1pt solid black">
        <fo:table-column column-width="proportional-column-width(1)" />
        <fo:table-column column-width="proportional-column-width(1)" />
        <fo:table-column column-width="proportional-column-width(1)" />
        <fo:table-column column-width="proportional-column-width(1)" />
        <fo:table-header>
            <fo:table-row>
                <fo:table-cell number-columns-spanned="4" font-weight="bold"
                          padding-left="3pt" padding-right="3pt" padding-top="1pt" padding-bottom="1pt">
                    <fo:block><xsl:value-of select="root/Executions/TableTitle"/></fo:block>
                </fo:table-cell>
            </fo:table-row>
            <fo:table-row>
                <xsl:for-each select="root/Executions/Column">
                    <fo:table-cell font-weight="bold" text-align="right" border-bottom-style="solid" border-bottom-width="0.5pt"
                            padding-left="3pt" padding-right="3pt" padding-top="1pt" padding-bottom="1pt">
                        <fo:block><xsl:value-of select="Title"/></fo:block>
                    </fo:table-cell>
                </xsl:for-each>
            </fo:table-row>
        </fo:table-header>
        <fo:table-footer>
            <fo:table-row>
                <fo:table-cell>
                    <fo:block></fo:block>
                </fo:table-cell>
            </fo:table-row>
        </fo:table-footer>
        <fo:table-body>
            <fo:table-row><fo:table-cell><fo:block></fo:block></fo:table-cell></fo:table-row>
            <xsl:for-each select="root/ExtraExecutions/Execution">
                <fo:table-row>
                    <fo:table-cell text-align="right" padding-left="3pt"
                            padding-right="3pt" padding-top="1pt" padding-bottom="1pt">
                        <fo:block><xsl:value-of select="Price"/>&#160;<xsl:value-of select="Currency"/></fo:block>
                    </fo:table-cell>
                    <fo:table-cell text-align="right" padding-left="3pt"
                            padding-right="3pt" padding-top="1pt" padding-bottom="1pt">
                        <fo:block><xsl:value-of select="Shares"/></fo:block>
                    </fo:table-cell>
                    <fo:table-cell text-align="right" padding-left="3pt"
                            padding-right="3pt" padding-top="1pt" padding-bottom="1pt">
                        <fo:block><xsl:value-of select="Consideration"/>&#160;<xsl:value-of select="Currency"/></fo:block>
                    </fo:table-cell>
                    <fo:table-cell text-align="right" padding-left="3pt"
                            padding-right="3pt" padding-top="1pt" padding-bottom="1pt">
                        <fo:block><xsl:value-of select="ExecutionCenter"/></fo:block>
                    </fo:table-cell>
                </fo:table-row>
            </xsl:for-each>
        </fo:table-body>
    </fo:table>

</fo:block>

0 个答案:

没有答案