[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

FW: XSL-FO: reset fo:page-number to 1 in each section

Subject: FW: XSL-FO: reset fo:page-number to 1 in each section of .pdf, based on XML input
From: "Greenbaum, Bill" <Bill@xxxxxxxxxxxx>
Date: Mon, 7 Apr 2003 17:19:39 -0400
fo page number reset
> Objective: Generate a .pdf with FOP, showing the <fo:page-number/>
> reverting to 1 on the first page for each BIRD.
> 
> What I get now: The output .pdf displays page numbers running
> consecutively from 1 at the beginning output to the end of the entire
> output.
> 
> Environment: Win, Apache's FOP-0.20.4 tool, generating a .pdf from an .XML
> file and an .XSL file (see samples below), . 
> 
> XML input: Each DOCUMENT/ITEM tag contains one BIRD tag with other data
> pertaining to that BIRD.  Different ITEMs can contain the same BIRD value.
> For each FOP transformation, I don't know in advance how many different
> BIRDs will occur in the XML, nor how many <ITEM>-level tags will pertain
> to the same BIRD value.   I'd like to assume I don't need to restructure
> the XML to reach our objective (correct pagination).
> 
>   <DOCUMENT>
> 		<ITEM>
> 			<BIRD>15</BIRD>
> 			<LICENSE>11432</LICENSE>
> 			<COLOR>Brown</COLOR>
> 		</ITEM>
> 		<ITEM>
> 			<BIRD>15</BIRD>
> 			<LICENSE>21435</LICENSE>
> 			<COLOR>White</COLOR>
> 		</ITEM>
> 		<ITEM>
> 			<BIRD>10</BIRD>
> 			<LICENSE>17865</COLOR>
> 			<COLOR>Blue</COLOR>
> 		</ITEM>
> 		<ITEM>
> 			<BIRD>10</BIRD>
> 			<LICENSE>17912</LICENSE>
> 			<COLOR>Red</COLOR>
> 		</ITEM>
> 		<ITEM>
> 			<BIRD>10</BIRD>
> 			<LICENSE>18012</LICENSE>
> 			<COLOR>Yellow</COLOR>
> 		</ITEM>
>   </DOCUMENT>
> 
> XSL-FO excerpt:
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
>   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>   xmlns:fo="http://www.w3.org/1999/XSL/Format">
> <xsl:variable name="uniqueBirds" select="DOCUMENT/ITEM[not(BIRD =
> preceding::BIRD)]/BIRD"/> 
> <xsl:template match="/">
> <fo:root>
>   <fo:layout-master>
>      	<fo:simple-page-master master-name="simpleFirst"
> 		 page-height="11in" 
>                  page-width="8.5in"
>                  margin-top="1cm" 
>                  margin-bottom="1.5cm" 
> 		 margin-left="25px" 
>                  margin-right="25px">  
> 		....
>      	</fo:simple-page-master>     
> 
>      	<fo:simple-page-master master-name="simpleRest"
> 		 page-height="11in" 
>                  page-width="8.5in"
>                  margin-top="1cm" 
>                  margin-bottom="1.5cm" 
> 		 margin-left="25px" 
>                  margin-right="25px">  
> 		....
>      	</fo:simple-page-master>     
> 
> 	<fo:simple-page-master master-name="simpleLast"
> 		 page-height="11in" 
>                  page-width="8.5in"
>                  margin-top="1cm" 
>                  margin-bottom="1.5cm" 
> 		 margin-left="25px" 
>                  margin-right="25px">  
> 		....      
>      	</fo:simple-page-master>     
> 
> 
> 	<fo:page-sequence-master master-name="simplePS1"
> initial-page-number="1">   	 	    
> 		<fo:repeatable-page-master-alternatives>
> 			<fo:conditional-page-master-reference
> master-reference="simpleFirst"
> 					page-position="first"/>
> 
> 			<fo:conditional-page-master-reference
> master-reference="simpleRest"
> 					page-position="rest"/><!--
> continuation page for data of each BIRD if needed -->			
> 			<fo:conditional-page-master-reference
> master-reference="simpleLast"
> 					page-position="last"/><!-- static
> last page of each BIRD -->					
> 		</fo:repeatable-page-master-alternatives>	
> 	</fo:page-sequence-master>  
>    </fo:layout-master-set>
> 
>    <fo:page-sequence master-reference="simplePS1" initial-page-number="1">
> 
>    	 <fo:static-content flow-name="xsl-region-before">
> 		<fo:block>Page <fo:page-number/> </fo:block>
>    	 </fo:static-content>
>    	 		
>    	 <fo:flow flow-name="xsl-region-body">
>    		<fo:block><xsl:apply-templates select="*"/></fo:block>
> 
>    	 </fo:flow>   	   	 
>    </fo:page-sequence>
> </fo:root> 
> ...
> </xsl:template>
> Note appended to the above xsl-fo:
>    .pdf output looks the same when I enclose the
> <fo:page-sequence></fo:page-sequence> or the <fo:root></fo:root> in
>    <xsl:for-each select="DOCUMENT[ITEM/BIRD =
> $uniqueBirds]"><xsl:for-each>.
> 
> Desired .pdf output:
> 
> Page in
> the output	The page
> sequence	should display
> 
> 1	  	page# = 1
> 		BIRD = 15
> 		COLOR = Brown
> 
> 2	  	page# = 2
> 		BIRD = 15
> 		COLOR = White
> 
> 3		page# = 3
> 		BIRD = 15
> 		Static Last Page for each BIRD
> 
> 4	  	page# = 1
> 		BIRD = 10
> 		COLOR = Blue
> 
> 5	  	page# = 2
> 		BIRD = 10
> 		COLOR= Red
> 
> 6	  	page# = 3
> 		BIRD = 10
> 		COLOR= Yellow
> 
> 7		page# = 4
> 		BIRD = 10
> 		Static Last Page for each BIRD
> 
> 
> 
> 
> 

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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.