Hello everyone,

I've been doing a little test using the following xsl-fo. Everything works fine except when I suppress all the column-width="..." in the first table then FOP doesn't give any warnings and the second table simply disappears. I'm not sure why this is happening.

Patrick

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

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format";>


 <!-- defines the layout master -->
 <fo:layout-master-set>
   <fo:simple-page-master master-name="first"
                          page-height="29.7cm"
                          page-width="21cm"
                          margin-top="1cm"
                          margin-bottom="2cm"
                          margin-left="2.5cm"
                          margin-right="2.5cm">
     <fo:region-body margin-top="3cm"/>
     <fo:region-before extent="3cm"/>
     <fo:region-after extent="1.5cm"/>
   </fo:simple-page-master>
 </fo:layout-master-set>

 <!-- starts actual layout -->
 <fo:page-sequence master-reference="first">

 <fo:flow flow-name="xsl-region-body">

     <!-- this defines a title level 1-->
     <fo:block font-size="18pt"
           font-family="sans-serif"
           line-height="24pt"
           space-after.optimum="15pt"
           background-color="blue"
           color="white"
           text-align="center"
           padding-top="3pt">
       Auto table layout test
     </fo:block>

     <!-- this defines a title level 2-->
     <fo:block font-size="16pt"
           font-family="sans-serif"
           space-after.optimum="15pt"
           text-align="center">
       A simple table -- fixed layout
     </fo:block>

   <!-- normal text -->
   <fo:block text-align="start">This simple table uses table-layout="fixed" 
which works fine with Apache FOP 0.92beta.
   </fo:block>

   <!-- table start -->
   <fo:table table-layout="fixed" width="100%" border-collapse="separate">
     <fo:table-column column-width="30mm"/>
     <fo:table-column column-width="30mm"/>
     <fo:table-column column-width="100mm"/>
     <fo:table-body>
       <fo:table-row>
         <fo:table-cell ><fo:block>one</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>two</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>three: a little more texte is 
nice.</fo:block></fo:table-cell>
       </fo:table-row>
       <fo:table-row>
         <fo:table-cell ><fo:block>un</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>deux</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>trois</fo:block></fo:table-cell>
       </fo:table-row>
       <fo:table-row>
         <fo:table-cell ><fo:block>uno</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>dos</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>tres</fo:block></fo:table-cell>
       </fo:table-row>
       <fo:table-row>
         <fo:table-cell ><fo:block>eins</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>zwei</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>drei</fo:block></fo:table-cell>
       </fo:table-row>
     </fo:table-body>
   </fo:table>
   <!-- table end -->

   <!-- normal text -->
   <fo:block text-align="start">This is normal text.
   </fo:block>

<!-- **************************** NEW PAGE ************************************* 
-->

     <!-- this defines a title level 2-->
     <fo:block font-size="16pt"
           font-family="sans-serif"
           space-after.optimum="15pt"
           text-align="center"
           break-before="page">
       A simple table -- auto-table layout
     </fo:block>


   <!-- normal text -->
   <fo:block text-align="start">This the same simple table but using 
table-layout="auto" which IS NOT supported by Apache FOP 0.92beta.
   </fo:block>
<!-- table start -->
   <fo:table table-layout="auto" width="100%" border-collapse="separate">
     <fo:table-column />
     <fo:table-column />
     <fo:table-column />
     <fo:table-body>
       <fo:table-row>
         <fo:table-cell ><fo:block>one</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>two</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>three: a little more texte is 
nice.</fo:block></fo:table-cell>
       </fo:table-row>
       <fo:table-row>
         <fo:table-cell ><fo:block>un</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>deux</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>trois</fo:block></fo:table-cell>
       </fo:table-row>
       <fo:table-row>
         <fo:table-cell ><fo:block>uno</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>dos</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>tres</fo:block></fo:table-cell>
       </fo:table-row>
       <fo:table-row>
         <fo:table-cell ><fo:block>eins</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>zwei</fo:block></fo:table-cell>
         <fo:table-cell ><fo:block>drei</fo:block></fo:table-cell>
       </fo:table-row>
     </fo:table-body>
   </fo:table>
   <!-- table end -->

   <!-- normal text -->
   <fo:block text-align="start">The desired optimal result here is to have the 
third column made larger so that the text can fit without a line-break.
   </fo:block>
</fo:flow>
 </fo:page-sequence>
</fo:root>



Jeremias Maerki wrote:

Uh, no. I just wanted to point out that "auto" is not a valid value for
column-width. What you probably meant was the case when the user doesn't
specify the column-width property in which case the value is not "auto"
but "proportional-column-width(1)" (see FOPropertyMapping). If that's
correct and usable remains to be seen.

On 13.07.2006 18:20:46 Patrick Paul wrote:
Thank you for the advice.

I will sum this up on the wiki page.

So if I understand correctly we have to support certain values even if they are illegal ?

Patrick

Jeremias Maerki wrote:

Right, but strictly speaking the value "auto" is illegal for
column-width. FOP currently defaults to "proportional-column-width(1)"
if no value is specified.

Another thing we should be careful about is the distinction between the
value set for table-layout and the effective algorithm to be used. If
you specify table-layout="fixed" but without an ipd, the rules for
automatic table layout are activated.

On 12.07.2006 22:55:44 Andreas L Delmelle wrote:


On Jul 12, 2006, at 22:11, Patrick Paul wrote:

Hi Patrick,

My first question, really simple but confusing to me, is about what is
supposed to happen when table-layout="fixed" and one of the columns has column-width="auto" ? Am I supposed to find out the optimal width juste for
that column ?
Yes, but with one big difference compared to table-layout="auto".
IIRC, CSS mentions this case explicitly: when table-layout="fixed" and column-width="auto" then the column-widths are ultimately the widths necessary for the cells in the first row. No need to look at the whole table, in any case...

Cheers,

Andreas


Jeremias Maerki




Jeremias Maerki



Reply via email to