首页 > 解决方案 > 如何在特定行数 xsl-fo 1.0 后打破表格?

问题描述

使用 apache fop 将表导出为 pdf 时出现内存问题。我想尝试通过在特定行数(例如 10 行之后)打破我的大表来解决这个问题。如何在使用 xls-fo 1.0 的特定行数后打破表格?

标签: javaxmlpdfxsl-foapache-fop

解决方案


在生成行时,您可以使用以下条件,这可能会帮助您生成期望的输出:

                        <fo:table-body>
                            <xsl:for-each select="student">
                                <fo:table-row padding-top="0pt" padding-bottom="0pt">
                                    <xsl:if test="position() mod 10 = 0">
                                        <xsl:attribute name="break-before">
                                            <xsl:value-of select="'page'"/>
                                        </xsl:attribute>
                                    </xsl:if>
                                    <fo:table-cell>
                                        <fo:block>
                                            <fo:inline font-size="12pt" font-family="Arial">
                                                <xsl:value-of select="name"/>
                                            </fo:inline>
                                        </fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell>
                                        <fo:block>
                                            <fo:inline font-size="12pt" font-family="Arial">
                                                <xsl:value-of select="class"/>
                                            </fo:inline>
                                        </fo:block>
                                    </fo:table-cell>
                                </fo:table-row>
                            </xsl:for-each>
                        </fo:table-body>

推荐阅读