也许这是一个简单的问题,希望有人可以帮助我。
目前,我已经使用我的PDF开始奇怪页面上的每一章。使用代码
我的 commons-attr.xsl 文件中的 <xsl: attribute-set name = "__ force__page__count">
结果是我的PDF中总是有偶数个页面。
但是我现在如何得到它,如果我的PDF页数奇数,则最后一页不添加此操作 我认为像下面的代码一样无济于事
<xsl:attribute-set name="__force__page__count">
<xsl:attribute name="force-page-count">
<xsl:choose>
<xsl:when test="(position() = last())">
<xsl:value-of select="'no-force'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'even'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</xsl:attribute-set>
答案 0 :(得分:1)
我怀疑你的问题始于<xsl:when test="name(/*) = 'bookmap' != last()">
。您正在测试节点的名称是否不等于last()。
您需要<xsl:when test="(position() != last()) and (name(/*) = 'bookmap')">
或position() != last()
可能就足够了,我希望只在章节/页面序列的开头调用此属性集,因此您的bookmap
测试可能没有必要。我不熟悉您正在使用的框架。
当然,这是否有效,取决于XML的结构。如果您的XML每个章节都有一个节点,并且在处理此章节点时调用属性集,那么它应该可以工作。
如果从其他地方调用属性集,或者结构不同,则position()测试不会给出预期结果。
你目前有一个测试试图匹配除了最后一个章节之外的每个章节,所以如果测试有效,那么你的“其他”和“只会在最后一章调用。构造xsl:choose
的更好方法是将异常放在xsl:when语句中:
<xsl:when test="position() = last()"> -match only the last chapter here-
<xsl:value-of select="'no-force'"/>
和xsl:otherwise
:
<xsl:value-of select="'even'"/>
在XSL-FO中,页面计数由force-page-count属性控制。其中一个可能的值是no-force
,这会产生您想要的效果:不添加任何页面
值&#39;奇数&#39;强制页面序列具有奇数页面(并且将添加空页面以实现此目的)。
答案 1 :(得分:0)
忘记force-page-count
,而是使用initial-page-number="auto-odd"
。见https://www.w3.org/TR/xsl11/#initial-page-number
当您忽略force-page-count
时,其默认值auto
可与initial-page-number
一起使用。见https://www.w3.org/TR/xsl11/#force-page-count
答案 2 :(得分:0)
大家好,我们做了几次测试,然后我们出来了。因此代码
<xsl:attribute-set name="__force__page__count">
<xsl:attribute name="force-page-count">
<xsl:choose>
<xsl:when test="following-sibling::*[(contains(@class, 'topic/topic'))] and not(ancestor::*[contains(@class,' topic/topic ')])">
<!-- <xsl:when test="$mirror-page-margins">-->
<xsl:value-of select="'end-on-even'"/>
</xsl:when>
<xsl:when test="not(following-sibling::*[(contains(@class, 'topic/topic'))])">
<xsl:value-of select="'auto'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'auto'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</xsl:attribute-set>
谢谢大家分享你的智慧。