Altova Mailing List Archives


RE: [xsl] Alternate page-sequences

From: "Roxana Constandes" <Roxana.Constandes@----------->
To:
Date: 4/22/2003 8:26:00 AM
Hello Ken!

Thanks a lot for helping me. I still have some problems. 

I need different region-bodies, not only different layouts on odd and even pages. So, I gave different names to regio-bodies in simple-page-master, as you said:
			<fo:simple-page-master page-height="297mm" page-width="210mm"
					margin-top="5mm"
					margin-bottom="5mm"
					margin-left="12mm"
					margin-right="2mm"
					master-name="OddPageMaster">
		 	        <fo:region-body region-name="odd-region-body" margin-top="1cm" margin-bottom="2cm"/>
			        <fo:region-before extent="1cm"/>
   				    <fo:region-after extent="2cm"/>
			</fo:simple-page-master>

			<fo:simple-page-master page-height="297mm" page-width="210mm"
					margin-top="5mm"
					margin-bottom="5mm"
					margin-left="12mm"
					margin-right="2mm"
					master-name="EvenPageMaster">
		 	        <fo:region-body region-name="even-region-body" margin-top="4cm" margin-bottom="2cm"/>
			        <fo:region-before extent="4cm"/>
   				    <fo:region-after extent="2cm"/>
			</fo:simple-page-master>
--------------------------
If I keep only one page-sequence, I get the output, odd pages have data (which is good), and even pages are blank.
-------------------------- 
I have to create two different flows, so I think I need two page-sequences (do I?):

		<fo:page-sequence master-reference="PageMaster">
			<fo:flow flow-name="odd-region-body">
				<xsl:for-each select="..........">
					<xsl:for-each select="......">
<!--body for odd pages-->
							<fo:block>odd</fo:block>
					</xsl:for-each>
				</xsl:for-each>
			</fo:flow>
		</fo:page-sequence>
		

		<fo:page-sequence master-reference="PageMaster">
			<fo:flow flow-name="even-region-body">
				<xsl:for-each select=".....">
					<xsl:for-each select=".....">
<!--body for odd pages-->
							<fo:block>even</fo:block>
					</xsl:for-each>
				</xsl:for-each>
			</fo:flow>
		</fo:page-sequence> 	

But, when I run Apache FOP, I get the following error:

	No flow found for region-body in page-master 'EvenPageMaster'
	No flow found for region-body in page-master 'OddPageMaster'

What I am doing wrong?
Thanks again,
Roxana

-----Original Message-----
From: G. Ken Holman [mailto:gkholman@xxxxxxxxxxxxxxxxxxxx]
Sent: Tuesday, April 22, 2003 10:49 AM
To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Alternate page-sequences


At 2003-04-22 10:25 -0400, Roxana Constandes wrote:
>I have to create a report that has diferrent flows on odd and even pages. 
>I am trying to create two page sequences and alternate them.

You are *really* close, Roxana,

>Here is a stylesheet (simplified):
>                 <fo:layout-master-set>
>                         <fo:simple-page-master ...
>                                         master-name="OddPageMaster">
>                                 <fo:region-body margin-top="1cm" 
> margin-bottom="2cm"/>
>                                 <fo:region-before extent="1cm"/>
>                                     <fo:region-after extent="2cm"/>
>                         </fo:simple-page-master>
>
>                         <fo:simple-page-master ...
>                                         master-name="EvenPageMaster">
>                                 <fo:region-body margin-top="4cm" 
> margin-bottom="2cm"/>
>                                 <fo:region-before extent="4cm"/>
>                                     <fo:region-after extent="2cm"/>
>                         </fo:simple-page-master>

The above is fine, except you are using the same implicit names for each of 
the regions.  If you want alternating *content* in those regions, you'll 
need to declare specific (and different) names for the regions with 
different content.

However, if you are only playing with margins, the above is just fine.

>                         <fo:page-sequence-master master-name="PageMaster">
>                                 <fo:repeatable-page-master-alternatives>
> 
><fo:conditional-page-master-reference master-reference="OddPageMaster"
> 
>page-position="any" odd-or-even="odd" />
> 
><fo:conditional-page-master-reference master-reference="EvenPageMaster"
> 
>page-position="any" odd-or-even="even" />
>                                 </fo:repeatable-page-master-alternatives>
>                         </fo:page-sequence-master>
>                 </fo:layout-master-set>

Everything above is also just fine for alternating the geometries.

>                 <fo:page-sequence master-reference="OddPageMaster">
>...
>                 <fo:page-sequence master-reference="EvenPageMaster">
>...
>But it doesn't work.
>  First, I get all pages for OddPageMaster (on both odd and even pages) 
> and then I get the output for EvenPageMaster.

Which is *exactly* what you asked for.

>What I want is to alternate them.

Then all you need is to do is ask that the page-sequence obtain its 
geometries from the page-sequence-master and *not* from the page geometry 
declarations:

                 <fo:page-sequence master-reference="PageMaster">

And you will only need one of these since that page sequence master is 
obtaining the evens and odds for you.

I hope this helps.

.......................... Ken



--
Upcoming hands-on courses:   Europe (XSLT/XPath):    May  5, 2003
-                            Europe (XSL-FO):        May 16, 2003
- (XSLT/XPath and/or XSL-FO) North America:      June 16-20, 2003

G. Ken Holman                mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.         http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0   +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6                      Definitive XSLT and XPath
ISBN 0-13-140374-5                              Definitive XSL-FO
ISBN 1-894049-08-X  Practical Transformation Using XSLT and XPath
ISBN 1-894049-10-1              Practical Formatting Using XSL-FO
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Disclaimer

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.