aspose file tools*
The moose likes XML and Related Technologies and the fly likes Doubt in XSL:FO Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » XML and Related Technologies
Bookmark "Doubt in XSL:FO " Watch "Doubt in XSL:FO " New topic
Author

Doubt in XSL:FO

M Radha
Greenhorn

Joined: Feb 07, 2008
Posts: 4
Hi

I am a new bee to XSL:FO , I have a requirement where in have to print addresses adjacent to each other in a PDF like the one below :

<table>
<tr>
<td>
Rakesh
AH4, djhdfj
Skdfjsfjk, sdjfhskdf
Sdjfsdkfj,
Chennai
</td>
<td>
Ramesh,
Wdjflsdk,sdflsdf,
Sdfksdl, wehksd
Sdkjfskldf,
Chennai
</td>
</tr>
<tr>
<td>
Vasanth
AK90, sdfjhdfjk,
Dfigjdflgk, dlfkgdfkg,
Chennai
</td>
<td>
Satish,
Sdjfhsdf, sdfjsdklf,
Sdofjsdf,
Chennai
</td>
</tr>
</table>

In my XML file I have each of these in a root note, the structure is as follows:

<candidate>
<name>rakesh</name>
<addressline1> AH4, djhdfj</addressline1>
<addressline2> Skdfjsfjk, sdjfhskdf</addressline2>
<addressline3> Sdjfsdkfj,</addressline3>
<addressline4> Chennai</addressline4>
</candidate>

So each of the candidate will have something like this, now in XSL:FO I call the apply-template method for candidate, the code is as follows , I have put snippets of my XSL:FO here:

<fo:table text-align="center" border-spacing="3pt">

<fo:table-column column-number="1" />
<fo:table-column column-number="2" />
<fo:table-column column-number="3" />
<fo:table-column column-number="4" />
<fo:table-column column-number="5" />
<fo:table-column column-number="6" />
<fo:table-column column-number="7" />
<fo:table-column column-number="8" />
<fo:table-column column-number="9" />
<fo:table-column column-number="10" />
<fo:table-column column-number="11" />
<fo:table-column column-number="12" />

<fo:table-body>
<xsl:apply-templates select=" candidate "/>
</fo:table-body>


<xsl:template match=" candidate ">
<fo:table-cell number-rows-spanned="2" number-columns-spanned="6" border="1pt solid black">
<fo:block text-align="left" white-space-collapse="false" white-space-treatment="preserve"><xsl:value-of select=" name "/></fo:block>
<fo:block text-align="left" white-space-collapse="false" white-space-treatment="preserve"><xsl:value-of select="addressline1"/> </fo:block>
<fo:block text-align="left" white-space-collapse="false" white-space-treatment="preserve"><xsl:value-of select="addressline2"/> fo:block>
<fo:block text-align="left" white-space-collapse="false" white-space-treatment="preserve"><xsl:value-of select="addressline3"/></fo:block>
<fo:block text-align="left" white-space-collapse="false" white-space-treatment="preserve"><xsl:value-of select="addressline4"/></fo:block>
<fo:block text-align="left" white-space-collapse="false" white-space-treatment="preserve"><xsl:value-of select="addressline5"/></fo:block>

</fo:table-cell>
</xsl:template>


Now if there are more number of candidates, this XSL:FO is giving a blank page as the first page and then the rest is fine.
Could I know why this is happening???

Am I using this number-rows-spanned="2" in a wrong way.

My Assumption : since I have 12 columns, I put the first candidate in the first 6 columns and then after its done the apply template method will be executed again, so since there are another 6 columns left free the next candidate would be placed there, this logic worked fine for say 10 candidates suppose I have around 100 candidates it still works but there is a initial blank page???
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Doubt in XSL:FO