xsl-list
[Top] [All Lists]

[xsl] XSL-FO page layout question

2007-03-29 06:58:54


I am struggling with my logic for XSL-FO page layouts and wanted to see if 
anyone has any suggestions for what I am trying to do. I have looked at a ton 
of examples but the short FO "Hello World" examples (without the XSL that got 
them there) aren't cutting it for me. I am formatting with Antenna House.

I am trying to define a page layout for my chapter pages so that the first page 
in a chapter has a running head with the page number only and then the rest of 
the odd and even pages use a different running head along with the page number. 
I am not having trouble with this for the first chapter I lay down but then any 
succeeding chapters' first page just use the odd/even layouts and doesn't go 
back to the layout I made for the first page. I am suspecting it must be 
something wrong with my XSL.

I have copied my code below if anyone has any comments. I have suspicions about 
my fo:flow code. I am starting the flow at my <body> tag which contains the 
chapters. So it hits the first chapter and that gets the first page but the 
second chapter gets the odd page instead of the first page. I even tried an 
xsl:for-each to cycle through each of the chapters but that did not seem to 
work either.


                        <fo:layout-master-set>
                                <fo:simple-page-master master-name="first-page" 
xsl:use-attribute-sets="pageDimensions">
                                        <fo:region-body margin-top="0pt" />
                                        <fo:region-before 
region-name="first-before" extent="32pt" />
                                        <fo:region-start extent="93pt" />
                                </fo:simple-page-master>
                                <fo:simple-page-master master-name="odd-page" 
xsl:use-attribute-sets="pageDimensions">
                                        <fo:region-body margin-top="71.5pt" />
                                        <fo:region-before 
region-name="odd-before" extent="45pt" />
                                        <fo:region-start extent="93pt" />
                                </fo:simple-page-master>
                                <fo:simple-page-master master-name="even-page" 
xsl:use-attribute-sets="pageDimensions">
                                        <fo:region-body margin-top="71.5pt" />
                                        <fo:region-before 
region-name="even-before" extent="45pt" />
                                        <fo:region-start extent="93pt" />
                                </fo:simple-page-master>
                                <fo:page-sequence-master 
master-name="my-sequence">
                                    <fo:repeatable-page-master-alternatives>
                                                
<fo:conditional-page-master-reference page-position="first"
                                              master-reference="first-page" 
page-postion="first"/>
                                                
<fo:conditional-page-master-reference odd-or-even="odd"
                                              master-reference="odd-page"/>
                                                
<fo:conditional-page-master-reference odd-or-even="even"
                                              master-reference="even-page"/>
                                        
</fo:repeatable-page-master-alternatives>
                                </fo:page-sequence-master>
                        </fo:layout-master-set>
                        
                        <fo:page-sequence master-reference="my-sequence">
                                <fo:static-content flow-name="first-before">
                                        <fo:block 
xsl:use-attribute-sets="runningHeadPageNumber"
                                                
text-align="right"><fo:page-number/></fo:block>
                                </fo:static-content>
                                        
                         <!-- This code sets up running head for odd pages -->
                                <fo:static-content flow-name="odd-before">
                                        <fo:block 
xsl:use-attribute-sets="runningHeadText"
                                                text-align="right">
                                                <fo:retrieve-marker 
retrieve-class-name="section" retrieve-position="last-ending-within-page" 
                                                retrieve-boundary="document"/>
                                                <fo:leader 
leader-pattern="space" leader-length="1em"/>
                                                <fo:inline 
xsl:use-attribute-sets="runningHeadPageNumber"><fo:page-number/></fo:inline>
                                        </fo:block>
                                </fo:static-content>
                                
                                <!-- This code sets up running head for even 
pages -->
                                <fo:static-content flow-name="even-before">
                                        <fo:block 
xsl:use-attribute-sets="runningHeadText"
                                                start-indent="-93pt"
                                                
keep-together.within-line="always"
                                                text-align="left">
                                                <fo:inline 
xsl:use-attribute-sets="runningHeadPageNumber"><fo:page-number/></fo:inline>
                                                <fo:leader 
leader-pattern="space" leader-length="12pt"/>
                                                <fo:retrieve-marker 
retrieve-class-name="chapterTitle" retrieve-position="last-ending-within-page" 
                                                retrieve-boundary="document"/>
                                                </fo:block>
                                </fo:static-content>
                                
                                <fo:flow flow-name="xsl-region-body">
                                        <xsl:apply-templates 
select="/book/body"/>
                                </fo:flow>
                        </fo:page-sequence>
                        
Any suggestions are greatly appreciated on how to get each new chapter to start 
back on the first page's model without starting the page numbering back to 1.

Thanks,
Cindy Hunt

--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>