You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-users@xmlgraphics.apache.org by Daniel Durgin <da...@marsbase10.net> on 2005/01/03 19:11:40 UTC

Always on page 52 - > "No meaningful layout in block after many attempts. "

Hi everyone,

I have been using FOP for about 9 months, off and on.  I have never had this 
problem before. No matter what I do, FOP craps out at page 52.  I can use 
more white space or less white space (i.e. more/less records per a page), 
doesn't matter. 

There are not that many records, only about 2800. No graphics, just text.  I 
have tried PDF and PS output, the same error each time.  If I limit the 
number of records (php script that creates xml file) so it won't make enough 
records for 52 pages, it works like a charm.

Output:
[DEBUG] Input mode:
[DEBUG] xslt transformation
[DEBUG] xml input file: StapleBook-2005-01-03.xml
[DEBUG] xslt stylesheet: StapleSheetPage.xsl
[DEBUG] Output mode:
[DEBUG] pdf
[DEBUG] output file: StapleSheet.pdf
[DEBUG] OPTIONS
[DEBUG] no user configuration file is used [default]
[DEBUG] debug mode on
[DEBUG] dump configuration
[DEBUG] quiet mode on
[INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
[INFO] base directory: file:/home/shared/Dan/RenysScripts/XML/
[INFO] FOP 0.20.5
[INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
[INFO] building formatting object tree
[INFO] setting up fonts
[INFO] [1]
[INFO] [2]
[WARNING] Some static content could not fit in the area.
... (repeats for pages in between) ...
[WARNING] Some static content could not fit in the area.
[INFO] [52]
[INFO] [52]
[ERROR] org.apache.fop.apps.FOPException: No meaningful layout in block after 
many attempts.  Infinite loop is assumed.  Processing halted.
org.apache.fop.apps.FOPException: org.apache.fop.apps.FOPException: No 
meaningful layout in block after many attempts.  Infinite loop is assumed.  
Processing halted.
        at 
org.apache.fop.apps.CommandLineStarter.run(CommandLineStarter.java:111)
        at org.apache.fop.apps.Fop.main(Fop.java:62)

Here is the XSL. Sorry about including the entire stylesheet, but I have been 
stumped for days, and not sure what is fouling things up.  Yes I have checked 
google and the archive.


<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xalan="http://xml.apache.org/xalan"
                   exclude-result-prefixes="xalan"
version="1.0" >

  <xsl:template match="/">

  <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" 
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
    <fo:layout-master-set>
     <fo:simple-page-master master-name="page1"
	   page-height="11in"
	   page-width="8.5in"
       margin-top="0.5in"
	   margin-bottom="0.5in"
       margin-left=".25in"
	   margin-right=".25in">
	   <fo:region-body
	     margin-top="0.60in"
	     margin-bottom="0.5in"
         margin-left="0.25in"
	     margin-right="0.25in"
            column-count="3" column-gap=".25in" />
       <fo:region-before extent="0.5in"
	     background-color="#489838"/>
       <fo:region-after extent="0.25in"/>
     </fo:simple-page-master>
	 <fo:simple-page-master master-name="page2"
	   page-height="11in"
	   page-width="8.5in"
       margin-top="0.5in"
	   margin-bottom=".5in"
       margin-left=".25in"
	   margin-right=".25in">
	   <fo:region-body
	     margin-top="0.25in"
	     margin-bottom="0.5in"
         margin-left="0.25in"
	     margin-right="0.25in"
         column-count="2" column-gap=".25in" />
       <fo:region-before extent="0.00in"/>
       <fo:region-after extent="0.25in"/>
     </fo:simple-page-master>
	 <fo:page-sequence-master master-name="document">
      <fo:repeatable-page-master-alternatives>
        <fo:conditional-page-master-reference page-position="first"
          master-reference="page1"/>
        <fo:conditional-page-master-reference page-position="rest"
          master-reference="page2"/>
      </fo:repeatable-page-master-alternatives>
    </fo:page-sequence-master>
   </fo:layout-master-set>

	 <fo:page-sequence master-reference="document">
       <fo:static-content flow-name="xsl-region-before">
         <fo:block
		  color="black"
		  font-size="18pt"
		  padding-after=".1in"
          padding-top=".2in"
		  padding-right=".1in">
		 <fo:inline
		   font-size="10pt">Store:</fo:inline>
		</fo:block>
		<fo:block
          font-size="12pt"
          padding-after=".05in"
          padding-top=".1in">
         <fo:inline>Printed On: <xsl:value-of select="../date"/></fo:inline>
	     &#160; &#160;
	     <fo:inline
	       start-indent="4in">Store:____________________________:</fo:inline>
        </fo:block>
		 <fo:block text-align="center">First page.</fo:block>
       </fo:static-content>
       <fo:static-content flow-name="xsl-region-after">
         <fo:block
	       text-align="center">page - <fo:page-number/> of
		   <fo:page-number-citation ref-id="last-page"/>
	     </fo:block>
       </fo:static-content>
       <fo:flow flow-name="xsl-region-body">
        <fo:block
	      break-before="page">
	      <xsl:apply-templates select="reports/sku-list" />
	    </fo:block>
       </fo:flow>
     </fo:page-sequence>

    </fo:root>
  </xsl:template>

<xsl:template match="sku-list" >
  <xsl:variable name="sorted">
     <xsl:for-each select="sku-item">
        <!--<xsl:sort select="@mfrid" data-type="number" />-->
		<xsl:sort select="mfr" data-type="text" />
		<xsl:sort select="stock-num" data-type="text" />
        <xsl:copy-of select="." />
     </xsl:for-each>
  </xsl:variable>
  <xsl:for-each select="xalan:nodeset($sorted)/sku-item">
   <!-- <xsl:apply-templates select="." />-->
	  <!--  <fo:block>
       hello
	</fo:block>-->
      <xsl:variable name="bool" select="position() mod 5 = 0"/>
	  <xsl:variable name="pastMfr"
       select="preceding-sibling::sku-item[1]/@mfrid"/>

      <xsl:choose>
	    <xsl:when test="not($pastMfr)">
		  <fo:table
		    table-layout="fixed">
		     <fo:table-column column-width="1.75in"/>
             <fo:table-column column-width=".5in"/>
		    <fo:table-body>
		      <fo:table-row>
                <fo:table-cell
			      number-columns-spanned="2">
                  <fo:block
			        text-align="center"
				    padding-bottom=".05in"
                    padding-top=".25in">
			        *** <xsl:value-of select="mfr"/> ***
			      </fo:block>
		        </fo:table-cell>
		      </fo:table-row>
		    </fo:table-body>
		  </fo:table>
	    </xsl:when>
         <xsl:when test="mfr/@id != $pastMfr">
		   <fo:table
		     table-layout="fixed">
             <fo:table-column column-width="1.75in"/>
             <fo:table-column column-width=".5in"/>
		     <fo:table-body>
		       <fo:table-row>
                <fo:table-cell
			     number-columns-spanned="2">
               <fo:block
			     text-align="center"
				 padding-bottom=".05in"
                 padding-top=".25in">
			     *** <xsl:value-of select="mfr"/> ***
			   </fo:block>
		     </fo:table-cell>
		   </fo:table-row>
            </fo:table-body>
		   </fo:table>
		 </xsl:when>
       </xsl:choose>


     <fo:table
      table-layout="fixed"
	  border-color="black"
	  width="2.25in"
      >
	  <fo:table-column column-width="1.75in"/>
      <fo:table-column column-width=".5in"/>

      <fo:table-header>
      </fo:table-header>

     <fo:table-body>
       <fo:table-row>
         <xsl:choose>
           <xsl:when test="$bool">
		    <fo:table-cell
		      background-color="#DAEFFF"
		      border-style="solid"
	          border-width="1px"
	          border-color="silver">
			  <fo:block
			    text-align="justify"
				font-size="9pt">
			    <xsl:value-of select="stock-num"/>
               &#160;
               <xsl:value-of select="price"/>
              </fo:block>
	          <fo:block
                hyphenate="true"
			    language="en"
			    hyphenation-push-character-count="2"
				padding=".1in"
	            font-size="9pt"
	            font-family="Helvetica"
				wrap-option="wrap"
		         >
              <xsl:value-of select="desc"/>
	         </fo:block>
			 <fo:block
			   font-size="9pt">
               <xsl:value-of select="@num"/>
             </fo:block>
            </fo:table-cell>
			<fo:table-cell
			  background-color="#DAEFFF"
			  border-style="solid"
	          border-width="1px"
	          border-color="silver">
			</fo:table-cell>
         </xsl:when>
		<xsl:otherwise>
		   <fo:table-cell
		     border-style="solid"
	         border-width="1px"
	         border-color="silver">
			  <fo:block
			    text-align="justify"
				font-size="9pt">
			    <xsl:value-of select="stock-num"/>
               &#160;
               <xsl:value-of select="price"/>
               &#160;  &#160;
              </fo:block>
			 <fo:block
			   hyphenate="true"
			   language="en"
			   hyphenation-push-character-count="2"
			   font-size="9pt"
			   wrap-option="wrap">
               <xsl:value-of select="desc"/>
			 </fo:block>
			 <fo:block
			   font-size="9pt">
               <xsl:value-of select="@num"/>
             </fo:block>
           </fo:table-cell>
		   <fo:table-cell
		     border-style="solid"
	         border-width="1px"
	         border-color="silver">
		   </fo:table-cell>
		 </xsl:otherwise>
		 </xsl:choose>
       </fo:table-row>
	  </fo:table-body>
      </fo:table>
  </xsl:for-each>



 <fo:block id="last-page"/>
</xsl:template>

<xsl:template match="mfr">
  <fo:table-row>
             <fo:table-cell
			   number-columns-spanned="2">
               <fo:block
			     text-align="center"
				 padding-bottom=".05in"
                 padding-top=".25in">
			     *** <xsl:value-of select="mfr"/> ***
			   </fo:block>
		     </fo:table-cell>
		   </fo:table-row>
</xsl:template>

<xsl:template match="sku-item">
    <fo:block>
       hello
	</fo:block>
	<fo:table
      table-layout="fixed"
	  border-color="black"
	  width="2.5in"
      >
	  <fo:table-column column-width="1.75in"/>
      <fo:table-column column-width=".5in"/>

      <fo:table-header>
      </fo:table-header>

     <fo:table-body>
      <xsl:variable name="bool" select="position() mod 5 = 0"/>
	  <xsl:variable name="pastMfr"
       select="preceding-sibling::sku-item[1]/@mfrid"/>

      <xsl:choose>
	    <xsl:when test="not($pastMfr)">
		   <fo:table-row>
             <fo:table-cell
			   number-columns-spanned="2">
               <fo:block
			     text-align="center"
				 padding-bottom=".05in"
                 padding-top=".25in">
			     *** <xsl:value-of select="mfr"/> ***
			   </fo:block>
		     </fo:table-cell>
		   </fo:table-row>
		 </xsl:when>
         <xsl:when test="mfr/@id != $pastMfr">
		   <fo:table-row>
             <fo:table-cell
			   number-columns-spanned="2">
               <fo:block
			     text-align="center"
				 padding-bottom=".05in"
                 padding-top=".25in">
			     *** <xsl:value-of select="mfr"/> ***
			   </fo:block>
		     </fo:table-cell>
		   </fo:table-row>
		 </xsl:when>
       </xsl:choose>

       <fo:table-row>
         <xsl:choose>
           <xsl:when test="$bool">

		    <fo:table-cell
		      background-color="#DAEFFF"
		      border-style="solid"
	          border-width="1px"
	          border-color="silver">
			  <fo:block
			    text-align="justify"
				font-size="9pt">
			    <xsl:value-of select="stock-num"/>
               &#160;
               <xsl:value-of select="price"/>

              </fo:block>

	          <fo:block
                hyphenate="true"
			    language="en"
			    hyphenation-push-character-count="2"
				padding=".1in"
	            font-size="9pt"
	            font-family="Helvetica"
				wrap-option="wrap"
		         >
              <xsl:value-of select="desc"/>
	         </fo:block>
			 <fo:block
			   font-size="9pt">
               <xsl:value-of select="@num"/>
             </fo:block>
            </fo:table-cell>

			<fo:table-cell
			  background-color="#DAEFFF"
			  border-style="solid"
	          border-width="1px"
	          border-color="silver">
			</fo:table-cell>
         </xsl:when>
		<xsl:otherwise>
		   <fo:table-cell
		     border-style="solid"
	         border-width="1px"
	         border-color="silver">

			  <fo:block
			    text-align="justify"
				font-size="9pt">
			    <xsl:value-of select="stock-num"/>
               &#160;
               <xsl:value-of select="price"/>
               &#160;  &#160;
              </fo:block>

			 <fo:block
			   hyphenate="true"
			   language="en"
			   hyphenation-push-character-count="2">
	         <fo:inline
			   font-size="9pt"
			   wrap-option="wrap">
               <xsl:value-of select="desc"/>
	         </fo:inline>
			 </fo:block>
			 <fo:block
			   font-size="9pt">
               <xsl:value-of select="@num"/>
             </fo:block>


           </fo:table-cell>
		   <fo:table-cell
		     border-style="solid"
	         border-width="1px"
	         border-color="silver">
		   </fo:table-cell>
		 </xsl:otherwise>
		 </xsl:choose>
       </fo:table-row>
	  </fo:table-body>
      </fo:table>
</xsl:template>
</xsl:stylesheet>


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org


Re: Always on page 52 - > "No meaningful layout in block after many attempts. "

Posted by "J.Pietschmann" <j3...@yahoo.de>.
Daniel Durgin wrote:
> I have been using FOP for about 9 months, off and on.  I have never had this 
> problem before. No matter what I do, FOP craps out at page 52.  

> [ERROR] org.apache.fop.apps.FOPException: No meaningful layout in block after 
> many attempts.  Infinite loop is assumed.  Processing halted.
There is something on page 52 which wont fit. Maybe it's
an odd combination of roundoff errors. I note that the
margins+column gaps+column widths equate the total page
width. Try to use a larger page width for a moment.

BTW
 > [WARNING] Some static content could not fit in the area.
You've got always content in the region-before but set the
region's extent to zero for page 2ff. I'm not even sure the
content fits on the first page.

Also
> 	         border-width="1px"
You should't use px unless you generate bitmaps.

J.Pietschmann

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org


Re: Always on page 52 - > "No meaningful layout in block after many attempts. "

Posted by Daniel Durgin <da...@marsbase10.net>.
On Monday 03 January 2005 03:02 pm, JBryant@s-s-t.com wrote:
> Just a thought - have you tried giving FOP more memory to use?
>
> If you use the batch file, you can modify the line that invokes FOP to
> include the -Xmx switch, so that it looks something like this:
>
> java -Xmx512m -cp "%LOCALCLASSPATH%" org.apache.fop.apps.Fop %1 %2 %3 %4
> %5 %6 %7 %8 %9
>
> That gives it a half gig to play with. I found that I had use the -Xmx
> switch to be able to produce large documents, but now I can produce
> 1700-page documents (in particular, a data dictionary for a large data
> warehouse).
>
> Good luck.
>
> Jay Bryant
> Bryant Communication Services
>

Hi Jay,

Thanks for the help.  I already had it set to 300MB. For the hell of it I gave 
it 1024MB.  It still crashed at page 52. 

Something I didn't mention before: I have tired this on two machines, with two 
different versions of Java. Still no go.

Thanks,
Dan


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org


Re: Always on page 52 - > "No meaningful layout in block after many attempts. "

Posted by JB...@s-s-t.com.
Just a thought - have you tried giving FOP more memory to use?

If you use the batch file, you can modify the line that invokes FOP to 
include the -Xmx switch, so that it looks something like this:

java -Xmx512m -cp "%LOCALCLASSPATH%" org.apache.fop.apps.Fop %1 %2 %3 %4 
%5 %6 %7 %8 %9

That gives it a half gig to play with. I found that I had use the -Xmx 
switch to be able to produce large documents, but now I can produce 
1700-page documents (in particular, a data dictionary for a large data 
warehouse).

Good luck.

Jay Bryant
Bryant Communication Services




Daniel Durgin <da...@marsbase10.net> 
01/03/2005 12:11 PM
Please respond to
fop-user@xml.apache.org


To
fop-user@xml.apache.org
cc

Subject
Always on page 52 - > "No meaningful layout in block after many attempts. 
"






Hi everyone,

I have been using FOP for about 9 months, off and on.  I have never had 
this 
problem before. No matter what I do, FOP craps out at page 52.  I can use 
more white space or less white space (i.e. more/less records per a page), 
doesn't matter. 

There are not that many records, only about 2800. No graphics, just text. 
I 
have tried PDF and PS output, the same error each time.  If I limit the 
number of records (php script that creates xml file) so it won't make 
enough 
records for 52 pages, it works like a charm.

Output:
[DEBUG] Input mode:
[DEBUG] xslt transformation
[DEBUG] xml input file: StapleBook-2005-01-03.xml
[DEBUG] xslt stylesheet: StapleSheetPage.xsl
[DEBUG] Output mode:
[DEBUG] pdf
[DEBUG] output file: StapleSheet.pdf
[DEBUG] OPTIONS
[DEBUG] no user configuration file is used [default]
[DEBUG] debug mode on
[DEBUG] dump configuration
[DEBUG] quiet mode on
[INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
[INFO] base directory: file:/home/shared/Dan/RenysScripts/XML/
[INFO] FOP 0.20.5
[INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
[INFO] building formatting object tree
[INFO] setting up fonts
[INFO] [1]
[INFO] [2]
[WARNING] Some static content could not fit in the area.
... (repeats for pages in between) ...
[WARNING] Some static content could not fit in the area.
[INFO] [52]
[INFO] [52]
[ERROR] org.apache.fop.apps.FOPException: No meaningful layout in block 
after 
many attempts.  Infinite loop is assumed.  Processing halted.
org.apache.fop.apps.FOPException: org.apache.fop.apps.FOPException: No 
meaningful layout in block after many attempts.  Infinite loop is assumed. 
 
Processing halted.
        at 
org.apache.fop.apps.CommandLineStarter.run(CommandLineStarter.java:111)
        at org.apache.fop.apps.Fop.main(Fop.java:62)

Here is the XSL. Sorry about including the entire stylesheet, but I have 
been 
stumped for days, and not sure what is fouling things up.  Yes I have 
checked 
google and the archive.


<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xalan="http://xml.apache.org/xalan"
                   exclude-result-prefixes="xalan"
version="1.0" >

  <xsl:template match="/">

  <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" 
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
    <fo:layout-master-set>
     <fo:simple-page-master master-name="page1"
                    page-height="11in"
                    page-width="8.5in"
       margin-top="0.5in"
                    margin-bottom="0.5in"
       margin-left=".25in"
                    margin-right=".25in">
                    <fo:region-body
                      margin-top="0.60in"
                      margin-bottom="0.5in"
         margin-left="0.25in"
                      margin-right="0.25in"
            column-count="3" column-gap=".25in" />
       <fo:region-before extent="0.5in"
                      background-color="#489838"/>
       <fo:region-after extent="0.25in"/>
     </fo:simple-page-master>
                  <fo:simple-page-master master-name="page2"
                    page-height="11in"
                    page-width="8.5in"
       margin-top="0.5in"
                    margin-bottom=".5in"
       margin-left=".25in"
                    margin-right=".25in">
                    <fo:region-body
                      margin-top="0.25in"
                      margin-bottom="0.5in"
         margin-left="0.25in"
                      margin-right="0.25in"
         column-count="2" column-gap=".25in" />
       <fo:region-before extent="0.00in"/>
       <fo:region-after extent="0.25in"/>
     </fo:simple-page-master>
                  <fo:page-sequence-master master-name="document">
      <fo:repeatable-page-master-alternatives>
        <fo:conditional-page-master-reference page-position="first"
          master-reference="page1"/>
        <fo:conditional-page-master-reference page-position="rest"
          master-reference="page2"/>
      </fo:repeatable-page-master-alternatives>
    </fo:page-sequence-master>
   </fo:layout-master-set>

                  <fo:page-sequence master-reference="document">
       <fo:static-content flow-name="xsl-region-before">
         <fo:block
                                   color="black"
                                   font-size="18pt"
                                   padding-after=".1in"
          padding-top=".2in"
                                   padding-right=".1in">
                                  <fo:inline
                                    font-size="10pt">Store:</fo:inline>
                                 </fo:block>
                                 <fo:block
          font-size="12pt"
          padding-after=".05in"
          padding-top=".1in">
         <fo:inline>Printed On: <xsl:value-of 
select="../date"/></fo:inline>
                      &#160; &#160;
                      <fo:inline
 start-indent="4in">Store:____________________________:</fo:inline>
        </fo:block>
                                  <fo:block text-align="center">First 
page.</fo:block>
       </fo:static-content>
       <fo:static-content flow-name="xsl-region-after">
         <fo:block
                        text-align="center">page - <fo:page-number/> of
                                    <fo:page-number-citation 
ref-id="last-page"/>
                      </fo:block>
       </fo:static-content>
       <fo:flow flow-name="xsl-region-body">
        <fo:block
                       break-before="page">
                       <xsl:apply-templates select="reports/sku-list" />
                     </fo:block>
       </fo:flow>
     </fo:page-sequence>

    </fo:root>
  </xsl:template>

<xsl:template match="sku-list" >
  <xsl:variable name="sorted">
     <xsl:for-each select="sku-item">
        <!--<xsl:sort select="@mfrid" data-type="number" />-->
                                 <xsl:sort select="mfr" data-type="text" 
/>
                                 <xsl:sort select="stock-num" 
data-type="text" />
        <xsl:copy-of select="." />
     </xsl:for-each>
  </xsl:variable>
  <xsl:for-each select="xalan:nodeset($sorted)/sku-item">
   <!-- <xsl:apply-templates select="." />-->
                   <!--  <fo:block>
       hello
        </fo:block>-->
      <xsl:variable name="bool" select="position() mod 5 = 0"/>
                   <xsl:variable name="pastMfr"
       select="preceding-sibling::sku-item[1]/@mfrid"/>

      <xsl:choose>
                     <xsl:when test="not($pastMfr)">
                                   <fo:table
                                     table-layout="fixed">
                                      <fo:table-column 
column-width="1.75in"/>
             <fo:table-column column-width=".5in"/>
                                     <fo:table-body>
                                       <fo:table-row>
                <fo:table-cell
 number-columns-spanned="2">
                  <fo:block
 text-align="center"
 padding-bottom=".05in"
                    padding-top=".25in">
                                                         *** <xsl:value-of 
select="mfr"/> ***
                                                       </fo:block>
                                         </fo:table-cell>
                                       </fo:table-row>
                                     </fo:table-body>
                                   </fo:table>
                     </xsl:when>
         <xsl:when test="mfr/@id != $pastMfr">
                                    <fo:table
                                      table-layout="fixed">
             <fo:table-column column-width="1.75in"/>
             <fo:table-column column-width=".5in"/>
                                      <fo:table-body>
                                        <fo:table-row>
                <fo:table-cell
 number-columns-spanned="2">
               <fo:block
                                                      text-align="center"
 padding-bottom=".05in"
                 padding-top=".25in">
                                                      *** <xsl:value-of 
select="mfr"/> ***
                                                    </fo:block>
                                      </fo:table-cell>
                                    </fo:table-row>
            </fo:table-body>
                                    </fo:table>
                                  </xsl:when>
       </xsl:choose>


     <fo:table
      table-layout="fixed"
                   border-color="black"
                   width="2.25in"
      >
                   <fo:table-column column-width="1.75in"/>
      <fo:table-column column-width=".5in"/>

      <fo:table-header>
      </fo:table-header>

     <fo:table-body>
       <fo:table-row>
         <xsl:choose>
           <xsl:when test="$bool">
                                     <fo:table-cell
                                       background-color="#DAEFFF"
                                       border-style="solid"
                           border-width="1px"
                           border-color="silver">
                                                   <fo:block
                                                     text-align="justify"
 font-size="9pt">
                                                     <xsl:value-of 
select="stock-num"/>
               &#160;
               <xsl:value-of select="price"/>
              </fo:block>
                           <fo:block
                hyphenate="true"
                                                     language="en"
 hyphenation-push-character-count="2"
 padding=".1in"
                             font-size="9pt"
                             font-family="Helvetica"
 wrap-option="wrap"
                                          >
              <xsl:value-of select="desc"/>
                          </fo:block>
                                                  <fo:block
                                                    font-size="9pt">
               <xsl:value-of select="@num"/>
             </fo:block>
            </fo:table-cell>
                                                 <fo:table-cell
 background-color="#DAEFFF"
                                                   border-style="solid"
                           border-width="1px"
                           border-color="silver">
                                                 </fo:table-cell>
         </xsl:when>
                                 <xsl:otherwise>
                                    <fo:table-cell
                                      border-style="solid"
                          border-width="1px"
                          border-color="silver">
                                                   <fo:block
                                                     text-align="justify"
 font-size="9pt">
                                                     <xsl:value-of 
select="stock-num"/>
               &#160;
               <xsl:value-of select="price"/>
               &#160;  &#160;
              </fo:block>
                                                  <fo:block
                                                    hyphenate="true"
                                                    language="en"
 hyphenation-push-character-count="2"
                                                    font-size="9pt"
                                                    wrap-option="wrap">
               <xsl:value-of select="desc"/>
                                                  </fo:block>
                                                  <fo:block
                                                    font-size="9pt">
               <xsl:value-of select="@num"/>
             </fo:block>
           </fo:table-cell>
                                    <fo:table-cell
                                      border-style="solid"
                          border-width="1px"
                          border-color="silver">
                                    </fo:table-cell>
                                  </xsl:otherwise>
                                  </xsl:choose>
       </fo:table-row>
                   </fo:table-body>
      </fo:table>
  </xsl:for-each>



 <fo:block id="last-page"/>
</xsl:template>

<xsl:template match="mfr">
  <fo:table-row>
             <fo:table-cell
 number-columns-spanned="2">
               <fo:block
                                                      text-align="center"
 padding-bottom=".05in"
                 padding-top=".25in">
                                                      *** <xsl:value-of 
select="mfr"/> ***
                                                    </fo:block>
                                      </fo:table-cell>
                                    </fo:table-row>
</xsl:template>

<xsl:template match="sku-item">
    <fo:block>
       hello
                 </fo:block>
                 <fo:table
      table-layout="fixed"
                   border-color="black"
                   width="2.5in"
      >
                   <fo:table-column column-width="1.75in"/>
      <fo:table-column column-width=".5in"/>

      <fo:table-header>
      </fo:table-header>

     <fo:table-body>
      <xsl:variable name="bool" select="position() mod 5 = 0"/>
                   <xsl:variable name="pastMfr"
       select="preceding-sibling::sku-item[1]/@mfrid"/>

      <xsl:choose>
                     <xsl:when test="not($pastMfr)">
                                    <fo:table-row>
             <fo:table-cell
 number-columns-spanned="2">
               <fo:block
                                                      text-align="center"
 padding-bottom=".05in"
                 padding-top=".25in">
                                                      *** <xsl:value-of 
select="mfr"/> ***
                                                    </fo:block>
                                      </fo:table-cell>
                                    </fo:table-row>
                                  </xsl:when>
         <xsl:when test="mfr/@id != $pastMfr">
                                    <fo:table-row>
             <fo:table-cell
 number-columns-spanned="2">
               <fo:block
                                                      text-align="center"
 padding-bottom=".05in"
                 padding-top=".25in">
                                                      *** <xsl:value-of 
select="mfr"/> ***
                                                    </fo:block>
                                      </fo:table-cell>
                                    </fo:table-row>
                                  </xsl:when>
       </xsl:choose>

       <fo:table-row>
         <xsl:choose>
           <xsl:when test="$bool">

                                     <fo:table-cell
                                       background-color="#DAEFFF"
                                       border-style="solid"
                           border-width="1px"
                           border-color="silver">
                                                   <fo:block
                                                     text-align="justify"
 font-size="9pt">
                                                     <xsl:value-of 
select="stock-num"/>
               &#160;
               <xsl:value-of select="price"/>

              </fo:block>

                           <fo:block
                hyphenate="true"
                                                     language="en"
 hyphenation-push-character-count="2"
 padding=".1in"
                             font-size="9pt"
                             font-family="Helvetica"
 wrap-option="wrap"
                                          >
              <xsl:value-of select="desc"/>
                          </fo:block>
                                                  <fo:block
                                                    font-size="9pt">
               <xsl:value-of select="@num"/>
             </fo:block>
            </fo:table-cell>

                                                 <fo:table-cell
 background-color="#DAEFFF"
                                                   border-style="solid"
                           border-width="1px"
                           border-color="silver">
                                                 </fo:table-cell>
         </xsl:when>
                                 <xsl:otherwise>
                                    <fo:table-cell
                                      border-style="solid"
                          border-width="1px"
                          border-color="silver">

                                                   <fo:block
                                                     text-align="justify"
 font-size="9pt">
                                                     <xsl:value-of 
select="stock-num"/>
               &#160;
               <xsl:value-of select="price"/>
               &#160;  &#160;
              </fo:block>

                                                  <fo:block
                                                    hyphenate="true"
                                                    language="en"
 hyphenation-push-character-count="2">
                          <fo:inline
                                                    font-size="9pt"
                                                    wrap-option="wrap">
               <xsl:value-of select="desc"/>
                          </fo:inline>
                                                  </fo:block>
                                                  <fo:block
                                                    font-size="9pt">
               <xsl:value-of select="@num"/>
             </fo:block>


           </fo:table-cell>
                                    <fo:table-cell
                                      border-style="solid"
                          border-width="1px"
                          border-color="silver">
                                    </fo:table-cell>
                                  </xsl:otherwise>
                                  </xsl:choose>
       </fo:table-row>
                   </fo:table-body>
      </fo:table>
</xsl:template>
</xsl:stylesheet>


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org