2014-12-03 140 views
0

我正在寻找一种方法来强制我的文档中的流程跳过一个页面。 我有什么到目前为止,这是(布局):跳过XSL-FO的页面?

<fo:layout-master-set> 
        <fo:page-sequence-master master-name="document"> 
         <fo:repeatable-page-master-alternatives maximum-repeats="2"> 
          <fo:conditional-page-master-reference master-reference="letter" odd-or-even="odd"/> 
          <fo:conditional-page-master-reference master-reference="back-special" odd-or-even="even"/> 
         </fo:repeatable-page-master-alternatives> 
         <fo:repeatable-page-master-alternatives> 
          <fo:conditional-page-master-reference master-reference="continuation" odd-or-even="odd"/> 
          <fo:conditional-page-master-reference master-reference="back" odd-or-even="even"/> 
         </fo:repeatable-page-master-alternatives> 
        </fo:page-sequence-master> 
         <fo:simple-page-master master-name="letter" page-height="32.0cm" page-width="22.5cm" margin-top="12.2cm" margin-bottom="3cm" margin-left="2.3cm" margin-right="0.75cm"> 
          <fo:region-body/> 
          <fo:region-before region-name="omr" extent="29.7cm"/> 
         </fo:simple-page-master> 
         <fo:simple-page-master master-name="back" page-height="32.0cm" page-width="22.5cm" margin-top="5.2cm" margin-bottom="1.8cm" margin-left="2.3cm" margin-right="2.0cm" > 
          <fo:region-body/> 
          <fo:region-before region-name="omr-rest" extent="29.7cm"/> 
         </fo:simple-page-master> 
         <fo:simple-page-master master-name="continuation" page-height="32.0cm" page-width="22.5cm" margin-top="5.2cm" margin-bottom="1.8cm" margin-left="2.3cm" margin-right="2.0cm" > 
          <fo:region-body/> 
          <fo:region-before region-name="conts" extent="29.7cm"/> 
         </fo:simple-page-master> 
         <fo:simple-page-master master-name="back-special" page-height="32cm" page-width="22.5cm" margin-top="5cm" margin-bottom="25cm" margin-left="2.5cm" margin-right="2.5cm"> 
          <fo:region-body/> 
          <fo:region-before region-name="special" extent="29.7cm"/> 
         </fo:simple-page-master> 
         <fo:simple-page-master master-name="separator" page-height="32.0cm" page-width="22.5cm" margin-top="2.15cm" margin-bottom="1.15cm" margin-left="1.75cm" margin-right="0.75cm"> 
          <fo:region-body/> 
         </fo:simple-page-master> 
       </fo:layout-master-set> 

,然后一个表,它指的是外部数据源,流内:

    <fo:table> 
        <fo:table-column column-width="1.8cm"/> 
        <fo:table-column column-width="5cm"/> 
        <fo:table-column column-width="3.2cm"/> 
        <fo:table-column column-width="3.8cm"/> 
        <fo:table-column column-width="4.0cm"/> 
        <fo:table-body space-after="1cm" space-before="1cm"> 
         <xsl:for-each select="rems/rem"> 
         <fo:table-row height="0.8cm" keep-together.within-column="always"> 
          <fo:table-cell> 
           <fo:block font-family="Helvetica" font-size="8pt" text-align="left" ><xsl:value-of select="rem3"/></fo:block> <!--date--> 
          </fo:table-cell> 
          <fo:table-cell> 
           <fo:block font-family="Helvetica" font-size="8pt" text-align="left" ><xsl:value-of select="rem4"/></fo:block> <!--details 1--> 
           <fo:block font-family="Helvetica" font-size="8pt" text-align="left" ><xsl:value-of select="rem5"/></fo:block> <!--details 2--> 
           <fo:block font-family="Helvetica" font-size="8pt" text-align="left" ><xsl:value-of select="rem6"/></fo:block> <!--details 3--> 
           <fo:block font-family="Helvetica" font-size="8pt" text-align="left" ><xsl:value-of select="rem7"/></fo:block> <!--details 4--> 
          </fo:table-cell> 
          <fo:table-cell> 
           <fo:block font-family="Helvetica" font-size="8pt" text-align="right" ><xsl:value-of select="rem8"/></fo:block> <!--payments--> 
          </fo:table-cell> 
          <fo:table-cell> 
           <fo:block font-family="Helvetica" font-size="8pt" text-align="right" ><xsl:value-of select="rem9"/></fo:block> <!--receipts--> 
          </fo:table-cell> 
          <fo:table-cell> 
           <fo:block font-family="Helvetica" font-size="8pt" text-align="right" ><xsl:value-of select="rem10"/></fo:block> <!--balance--> 
          </fo:table-cell> 
         </fo:table-row> 
         </xsl:for-each> 
        </fo:table-body>       
       </fo:table> 

我所试图实现的是一个主文档,在表的开始处,下一个页面(背页)将是空白的(带有完整页面图形),并且流程完全跳过此页面,然后继续继续页面(第3页'延续“)。

如果我增加“回特”比他们更多,我得到一个错误如下顶部&底部边距: “UnsupportedOperationException异常:不知道如何在positionNonLeafPos重新启动:26”。 ..etc

我读过它是一个known issue in FOP,所以我只是想知道是否有人有任何建议来解决这个问题。

回答

1

您可以通过使用不同的区域名称为masterpages的主体区实现这一点,看到了这个问题:Place text on odd pages only, skip even pages

+0

对不起,我忘了提,这是使用Apache FOP,时不支持多区域身体在模板内。 – cmp25 2014-12-04 09:34:40

+0

但我刚刚发现您提到的方法在FOP 1.1中工作(我目前使用的是1.0)。 因此,我将使用1.1测试建议的修复程序,然后更新.. – cmp25 2014-12-04 09:46:10