[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Pagebreaks in Excel-HTML transformer


Subject: [xsl] Pagebreaks in Excel-HTML transformer
From: Oleg Konovalov <olegkon@xxxxxxxxx>
Date: Wed, 1 Feb 2006 08:25:24 -0500

Hi,

I am trying to fix the following bug in the existing Cocoon 2.0.4/XSLT1.0
app:
it produces the output multipage data file in both Word and Excel,
In Excel at some point (from page 5 of 25) the pagebreaks start
happening 3 lines
after they should be (and increases by 3 more lines on some
of subsequent pages), but there is no such problem in Word.
Happens for both Excel 2000 and 2003.

here is an exerpt from the sitemap:
...
<map:transform type="xslt" src="xslt/cm/{../1}sheet-transform.xsl"
label="transform">
       <map:parameter name="sec_user_id" value="{userId}"/>
       <map:parameter name="page" value="{../1}sheet"/>
</map:transform>
<map:transform type="xslt" src="xslt/excel-html-transform.xsl" label="html">
        <map:parameter name="sec_user_id" value="{userId}"/>
        <map:parameter name="page" value="{../1}sheet"/>
</map:transform>
<map:serialize type="fakeout-xls"/>
</map:act>
</map:match>

There is a very similar part for Word where (so the input to Excel and
Word transformers is the same and has pagebreak tag
in the proper place):
<map:serializer name="fakeout-xls" mime-type="application/vnd.ms-excel"
               src="org.apache.cocoon.serialization.HTMLSerializer"/>
<map:serializer name="fakeout-word" mime-type="application/msword"
               src="org.apache.cocoon.serialization.HTMLSerializer"/>

Here is a fragment of the Excel-html-transformer:
<x:PageBreaks>
       <x:RowBreaks>
            <xsl:for-each select="/document/helper-info/row-breaks/row">
               <x:RowBreak>
                   <x:Row><xsl:value-of select="."/></x:Row>
               </x:RowBreak>
             </xsl:for-each>
          </x:RowBreaks>
</x:PageBreaks>

Looks like the Excel page formatting occurs  in that  HTML serializer,
at least if I put a  standard   <map:serialize type="html"/> insted of
fakeout-xls,
the pages are not showing any pagebreaks at all....

What do you think might be wrong?   Please help !

Here is a snippet of my input XML:
...
<row>
<cell>&nbsp;</cell>
</row>
</table>
<page-break></page-break>     <!--  you can see a page-break between 2
tables ! -->
<table>
<row>
<cell>
<proposal-name>P Plus HMO Alt Tier Test 082605</proposal-name>
</cell>
</row>
<row>
...

If I run that XSLT transformation in XMLSpy2006,
resulting XSLOutput.html does not show any page breaks
at all (none at all in the whole document, it also drops all <table> tags):
...</td>
</tr>
<tr xmlns="">
<td xmlns="">&amp;nbsp;</td>
</tr>
<tr xmlns="">
<td xmlns="" colspan="7" class="xl32">P Plus HMO Alt Tier Test 082605</td>
</tr>

So I it's a serializer interpreting the pagebreaks:
<map:serializer name="fakeout-xls" mime-type="application/vnd.ms-excel"
               src="org.apache.cocoon.serialization.HTMLSerializer"/>

Any ideas what might be wrong there ?  Any known bug ?

Any help is very appreciated.


Thank you in advance,
Oleg


Current Thread
Keywords