xsl-list
[Top] [All Lists]

Re: [xsl] how to trigger a new page sequence, depending on specific input conditions

2011-10-06 08:37:38
On Thu, October 6, 2011 1:29 pm, team wise wrote:
...
FO implementations that are comprised of two separate
<fo:page-sequence>, among others result in PDF that contains two back
page.

Solutions I have taken so far, which do not work as expected, are
explained below:

First, here is the 'insert.lastchapter' named template that triggers a
new page sequence for the 'back page' only, which works just fine.
Note that 'insert.lastchapter' is pretty much duplicate of the
'insert.chapter', which is briefly explained below.

<xsl:template name="insert.lastchapter">
  <xsl:param name="content"/>

What does $content do?  You don't seem to be using it.

      <xsl:if test="$outputformat = 'UG_Booklet_Print'">
        <xsl:for-each select="*[contains(@outputclass, 'pagebreak')]">

It's still not clear to me how much is being repeated that isn't wanted,
but this will process only the last element that has
'outputclass="pagebreak"' [2]:

   <xsl:for-each select="*[contains(@outputclass, 'pagebreak')][last()]">

It's also not clear to me whether there's anything that comes after the
last element that has 'outputclass="pagebreak"'.

         <xsl:variable name="position" select="position()" />
          <fo:page-sequence initial-page-number="auto" format="1">
            <xsl:attribute
name="master-reference">chapter-master</xsl:attribute>

That could have been a literal attribute.

...
       <xsl:apply-templates select=". |
preceding-sibling::*[count(preceding-sibling::*[contains(@outputclass,
'pagebreak')]) = $position - 1]" />
    <fo:flow flow-name="region.body">

I would have thought that the xsl:apply-templates would have gone here,
not before the fo:flow.

     </fo:flow>
     </fo:page-sequence>
  </xsl:for-each>
   </xsl:if>
</xsl:template>

Is it the case that all you really need is 'break-after="page"' or
'break-after="odd-page"' [1] on the fo:block for the element that has
'outputclass="pagebreak"'?

Second, as indicated below, to prevent <fo:flow
flow-name"region.body"> from flowing in the last node to appear on the
last page or the back page repeatedly within 'insert.chapter', I have
tried

I don't understand "prevent <fo:flow flow-name"region.body"> from flowing
in the last node".

Regards,


Tony Graham                                   tgraham(_at_)mentea(_dot_)net
Consultant                                 http://www.mentea.net
Mentea       13 Kelly's Bay Beach, Skerries, Co. Dublin, Ireland
 --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --
    XML, XSL FO and XSLT consulting, training and programming

[1] http://www.w3.org/TR/xsl11/#break-after
[2] And, if you keep the current contents of the xsl:for-each,
    maybe some of its siblings as well.

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--