RE: Table headers missing on all pages except last.

Volodymyr,

 

I found a solution for the issue by digging around the apache FOP mail
archive that fixed the issue for me.  Here it is:

http://marc.info/?l=fop-user&m=114733126718951&w=4

Apparently the <fo:block-container space-after="10mm"> was breaking the
headers in the table because when I removed it the headers functioned
correctly.

 

I am curious as to how you got it to work for you even thought we are
using the same jar FOP-0.93.  I am using a newer JDK(1.5.0_09) than you
which may be my issue.

 

I am looking into changing the way the tables are laid out since the
column widths and the table with has to be dynamic.  So I am going to
leave the table as %100 and make the columns some equal division of the
100% like 50%, 50% or 34%, 33%, 33%... The odd part with the crosshairs
loading into overlapping boxes looks strange and is not working
correctly since I had to take out the images used in the pdf generation.
I didn't want to send a bunch of images with my email.

 

________________________________

From: Vladimir Rodimyuk [mailto:VladimirR@ukrinvent.com] 
Sent: Thursday, August 16, 2007 2:30 PM
To: Cournane, Eamon; www-xsl-fo@w3.org
Subject: RE: Table headers missing on all pages except last.

 

Eamon,

 

As it seems to me a header missing is an issue of your version of FOP. I
tried to produce PDF using FOP-0.93 (J2SDK1.4.2_04) and it looks quite
correct to me (attached OverflowPageHazards.pdf). The log with warnings
is attached (fop.log).

 

I suppose that the issue with PNG images in XEP generated PDF was caused
by ignoring the Alfa channel
(http://www.renderx.com/reference.html#d0e11584). 

 

IMHO, other differences are caused by formatter compliance to the XSL-FO
specification.

The setting of width to 100% (of region-body width) overrides the
setting for individual column (with absolute width). I think it's quite
right. In case of your document the workaround is to set the table width
to the sum of column width or just to omit it.

<fo:table space-after="10px" text-align="center" table-layout="fixed">

<fo:table-column column-width="30mm"/>

<fo:table-column column-width="30mm"/>

 

By the way, I think that correct behavior for formatter in case
position="absolute" would be shifting the area from the region-body
border (as it described here http://www.w3.org/TR/xsl/#position and as
XEP does). I'm a little bit confused about how it should look. Does the
crosshair should be shifted outside the parent area?

You can see PDF produced with XEP - overflowpagehazards.mod.pdf

 

Respectfully,

Volodymyr Rodymyuk

 

________________________________

From: Cournane, Eamon [mailto:ecournane@hdm.com] 
Sent: Thursday, August 16, 2007 7:03 PM
To: Vladimir Rodimyuk; www-xsl-fo@w3.org
Subject: RE: Table headers missing on all pages except last.

 

Vladimir,

Thank you so much for your quick response.

 

I tried explicitly setting the "table-omit-header-at-break" to false,
but that is just the default value so it didn't change anything.  I have
attached the resulting xslfo from the xslt I had sent earlier.  Please
excuse the formatting and sorry for not sending it the first time, I am
new to xslfo.

 

I used RenderX XEP to transform the xslfo into the attached pdf and I
attached an example transformed by Apache FOP.  As you can see XEP did
the table correctly but the overall pdf looks quite different.  So this
seems to be an issue in FOP.  I don't believe it is due to the header
being height being to large, as you had suggested.  I am not setting
attribute that would make the header too big.

 

Since I am stuck with using FOP due to the architecture of the system I
am developing this within, do you have any idea why FOP may be having
this issue?  I am going to send this issue to the FOP mailing list to
see if anyone over there has any clue what is happening.

 

Thanks again,

Eamon

 

________________________________

From: Vladimir Rodimyuk [mailto:VladimirR@ukrinvent.com] 
Sent: Thursday, August 16, 2007 6:17 AM
To: Cournane, Eamon; www-xsl-fo@w3.org
Subject: RE: Table headers missing on all pages except last.

 

Hi!

There is an attribute "table-omit-header-at-break" for fo:table element,
if it is set to "true" all table headers on line breaks will be omitted.
But that is surely not your case. I tried to reproduce your situation,
but as you can see from attachment, the result is quite correct.

You supplied XSL code, but it would be much informative in case you had
sent your resulting XSL-FO code. 

              <xsl:call-template name="display_attribute_name">

                <xsl:with-param name="catName" select="$catName" />

                <xsl:with-param name="attrName" select="@name" />

              </xsl:call-template>

Do you generate any attribute concerning area padding or its margins in
"display_attribute_name" template? What is the produced height of your
header? Check whether it is smaller than 4cm (margin-top for page plus
margin-top for region-body) and it do not overlap with table header. 

 

Are you using FOP? Try to use another formatter to see where the problem
is. RenderX allows to use free of charge their XEP formatter for
personal use. Check http://www.renderx.com/download/personal.html.

 

Respectfully,

Volodymyr Rodymyuk

 

________________________________

From: www-xsl-fo-request@w3.org [mailto:www-xsl-fo-request@w3.org] On
Behalf Of Cournane, Eamon
Sent: Wednesday, August 15, 2007 8:17 PM
To: www-xsl-fo@w3.org
Subject: Table headers missing on all pages except last.

 

I am using the following to create a table and it spans multiple pages
and I have a header set on it but it only shows up on the last page of
the table.  Any pages the table spans before the last page do not have
headers.  Has anyone seen this before?

 

<fo:table table-layout="fixed" width="100%" text-align="center"
space-after="10px">

  <!-- Loop through attributes and define column for each -->

  <xsl:for-each select="descendant::Feature[1]/Attribute">

    <xsl:call-template name="column_for_attribute">

      <xsl:with-param name="catName" select="$catName" />

      <xsl:with-param name="attrName" select="@name" />

    </xsl:call-template>

  </xsl:for-each>

  <!-- Loop through and add header for each column -->

  <fo:table-header>

    <fo:table-row>

      <xsl:for-each select="descendant::Feature[1]/Attribute">

        <fo:table-cell>

          <fo:block font-size="6.5pt" text-decoration="underline">

              <xsl:call-template name="display_attribute_name">

                <xsl:with-param name="catName" select="$catName" />

                <xsl:with-param name="attrName" select="@name" />

              </xsl:call-template>

          </fo:block>

        </fo:table-cell>

      </xsl:for-each>

    </fo:table-row>

  </fo:table-header>

  <!-- Loop through attributes and add table cell for each -->

  <fo:table-body>

    <xsl:for-each select="descendant::Feature">

      <fo:table-row>

        <xsl:for-each select="Attribute">

          <fo:table-cell>

            <fo:block font-size="6.5pt">

              <xsl:call-template name="display_attribute_value">

                <xsl:with-param name="catName" select="$catName" />

                <xsl:with-param name="attrName" select="@name" />

                <xsl:with-param name="attrValue" select="@value" />

              </xsl:call-template>

            </fo:block>

          </fo:table-cell>

        </xsl:for-each>

      </fo:table-row>

    </xsl:for-each>

  </fo:table-body>

</fo:table>

 

My layout and page sequences are setup like this(I have cut out some of
the template calls and data.):

 

<fo:layout-master-set>

  <fo:simple-page-master master-name="simple" page-height="27.8cm"
page-width="21.5cm" margin-left="2.5cm"

    margin-right="2.5cm" margin-top="1cm" margin-bottom="1cm">

    <fo:region-body margin-top="3cm" margin-bottom="3cm" />

    <fo:region-before extent="2.5cm" region-name="header" />

    <fo:region-after extent="2.5cm" region-name="footer" />

  </fo:simple-page-master>

</fo:layout-master-set>

Received on Thursday, 16 August 2007 18:51:29 UTC