【问题标题】:XSL: force-page-count="end-on-even" displays page number on the even blank pageXSL: force-page-count="end-on-even" 在偶数空白页上显示页码
【发布时间】:2016-05-01 18:28:15
【问题描述】:

所以我有这种情况:我正在使用天线屋从 xml/xsl 生成 pdf。问题是生成的 pdf 包含多个 N 个文档,每个文档有 X 页。如果文档在奇数页结束打印,则必须在文档末尾插入空白页,以便下一个文档从新页开始。为此,我使用:force-page-count="end-on-even",但插入的空白页有一个页码,我不想显示它,因为页面上没有内容。 这是 xsl 部分:

<xsl:template match="document"> 
      <fo:page-sequence master-reference="myDoc"  initial-page-number="1" force-page-count="end-on-even" >
            <fo:static-content flow-name="xsl-region-after" font-size="8pt" font-family="Arial" >
                <fo:block>
                    <fo:block text-align="right" margin-right="10mm">
                        <fo:inline text-align="right">                                                                            
                            Page: <fo:page-number /> of <fo:page-number-citation-last ref-id="{generate-id(.)}"/>
                        </fo:inline>
                    </fo:block>        

                    <xsl:variable name="footervar" select=".//footertxt" /> <!-- Gets text betwen <footertxt> tags in XML file -->                   
                            <fo:block text-align="left" margin-left="15mm"> 
                                <fo:inline>
                                    <xsl:value-of select="$footervar" />
                                </fo:inline>                    
                            </fo:block> 
                </fo:block>    
            </fo:static-content>
        </fo:page-sequence>
    </xsl:template>   

xml 部分如下所示:

  <document>
    <footertxt>  </footertxt>
    <section>
      <paragraf>1</paragraf>
    </section>
  </document>
  <document>
    <footertxt>  </footertxt>
    <section>
      <paragraf>2</paragraf>
    </section>
    <pagebreak />
     <section>
      <paragraf>3</paragraf>
    </section>
  </document>

任何想法如何从空白页中删除页码? 谢谢

【问题讨论】:

    标签: xml xslt-1.0 xsl-fo


    【解决方案1】:

    您可以设置一个包含多个fo:conditional-page-master-reference (https://www.w3.org/TR/xsl11/#fo_conditional-page-master-reference) 的fo:repeatable-page-master-alternatives (https://www.w3.org/TR/xsl11/#fo_repeatable-page-master-alternatives) 的fo:page-sequence-master (https://www.w3.org/TR/xsl11/#fo_page-sequence-master)。第一个fo:conditional-page-master-reference 可以有blank-or-not-blank="blank" 并引用没有fo:xsl-region-afterfo:simple-page-master

    更简单地说,您可以执行以下操作:

    <fo:simple-page-master master-name="BlankPage"
                           page-height="265mm"
                           page-width="215mm">
        <fo:region-body region-name="blank" />
    </fo:simple-page-master>
    ...
    <fo:page-sequence-master master-name="myDoc">
      <fo:repeatable-page-master-alternatives>
        <fo:conditional-page-master-reference master-reference="BlankPage"
                                              blank-or-not-blank="blank" />
        <fo:conditional-page-master-reference master-reference="OddPage"
                                              odd-or-even="odd" />
        <fo:conditional-page-master-reference master-reference="EvenPage"
                                              odd-or-even="even" />
      </fo:repeatable-page-master-alternatives>
    </fo:page-sequence-master>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 2014-07-19
      • 2015-06-06
      • 2020-07-03
      • 1970-01-01
      相关资源
      最近更新 更多