RTF 출력의 표 안에 페이지 나누기를 방지하는 방법을 찾을 수 없습니다.XSL-FO 2.0 : 표 안의 페이지 나누기 방지
나는 keep-together
/keep-with-next
의 많은 조합을 시도했지만 나에게 아무런 효과가 없었다. 실제 버전은 전체 테이블을 포함하여 keep-together.within-page="always"
속성을 가진 부모 fo:block
을가집니다.
이 문제는 RTF가 생성 될 때만 발생합니다. PDF가 정확하며 표 안의 페이지 나누기가 없습니다. 테이블에는 헤더 행과 3 개의 데이터 행이 있습니다. RTF에는 header-row 다음에 첫 번째 2 개의 데이터 행 뒤에 페이지 나누기가 있습니다. 다음 페이지에서 헤더가 반복되고 마지막 데이터 행이 생성됩니다.
테이블에 페이지 나누기가 포함되어 있지 않은 것이 매우 중요합니다.
<fo:block keep-together.within-page="always" >
<xsl:for-each select="block">
<xsl:call-template name="drawData"></xsl:call-template>
</xsl:for-each>
<fo:table text-align="center">
<xsl:for-each select="row[@type='declare'][1]/column">
<fo:table-column column-number="position()" border-style="solid" border-color="#000000" border-width="0.5pt">
<xsl:attribute name="column-width"><xsl:value-of select="@width"/></xsl:attribute>
</fo:table-column>
</xsl:for-each>
<xsl:if test="row[@type='header']">
<fo:table-header>
<fo:table-row keep-together.within-page="2" background-color="#0000FF" color="#FFFFFF">
<xsl:for-each select="row[@type='header'][1]/column/block">
<fo:table-cell border-style="solid" border-color="#000000" border-width="0.5pt">
<xsl:attribute name="number-columns-spanned">
<xsl:value-of select="count(../../../row[@type='declare']/column) div count(../../../row[@type='declare'])"/>
</xsl:attribute>
<xsl:call-template name="drawData"></xsl:call-template>
</fo:table-cell>
</xsl:for-each>
</fo:table-row>
</fo:table-header>
</xsl:if>
<fo:table-body>
<xsl:for-each select="row[not(@type='header')]">
<fo:table-row keep-together.within-page="2">
<xsl:for-each select="column/block">
<fo:table-cell border-style="solid" border-color="#000000" border-width="0.5pt">
<xsl:call-template name="drawData"></xsl:call-template>
</fo:table-cell>
</xsl:for-each>
</fo:table-row>
</xsl:for-each>
</fo:table-body>
</fo:table>
</fo:block>
관련 테이블의 스크린 샷
: 순간 ( FOP version 2.1)에서
실제로 "XSL-FO 2.0"과 같은 것이 없습니다. Apache FOP 2.0을 사용한다는 의미입니까? – mzjn