W3C home > Mailing lists > Public > www-xsl-fo@w3.org > August 2007

RE: Table headers missing on all pages except last.

From: Vladimir Rodimyuk <VladimirR@ukrinvent.com>
Date: Thu, 16 Aug 2007 21:30:00 +0300
To: "Cournane, Eamon" <ecournane@hdm.com>, "www-xsl-fo@w3.org" <www-xsl-fo@w3.org>
Message-ID: <C50378BB9C267D4796753862ED9AE1A33D6464283E@UI-OPTERON.ukrinvent.com>
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:39:17 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 3 October 2007 16:06:14 GMT