2016-06-08 3 views
1

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)에서 Document View

+1

실제로 "XSL-FO 2.0"과 같은 것이 없습니다. Apache FOP 2.0을 사용한다는 의미입니까? – mzjn

답변

1

에서, RTF 출력은 몇 가지 제한이 PDF와 비교 한 다음

는 관련 XSLT - 스타일 시트 코드 산출; 특히 유지 특성을 지원하지 않습니다.

링크 된 페이지가

RTF 출력이

RTF 라이브러리에서 지원하지만 RTFHandler

에 연결되지

입니다 유지 현재 관리되지 않는 것을 말한다

이므로이 기능은 외부 도움말 없이는 향후 버전에서 수정되지 않을 가능성이 있지만 이 구현하기가 비교적 쉽습니다 (이 경우 submit a patch에 좋은 생각입니다).