On Tuesday 20 March 2007 04:10, Andreas L Delmelle wrote:
> Begin forwarded message:
> > From: Andreas L Delmelle <[EMAIL PROTECTED]>
> >
> >> <snip/>
> >>
> >>>    <fo:block margin-left="0pt" margin-right="0pt" unicode-
> >>> bidi="embed">
> >>>      <fo:block-container absolute-position="absolute"
> >>> left="16.0%" top="16.0%">
> >>>        <fo:block>
> >>>          <fo:inline margin-left="0pt" margin-right="0pt">1</
> >>> fo:inline>
> >>>        </fo:block>
> >>>      </fo:block-container>
> >>
> >> <snip/>
> >>
> >>> So now the 1, 2 and 3 are all inside the outer box, but all at
> >>> the top left corner.  This could be because the <fo:block> inside
> >>> the top-level <fo:block-container> doesn't fill the entire block
> >>> container.  It could also be because % simply doesn't work
> >>> (hopefully that isn't the case though, the former problem is
> >>> easier to work around.)
> >>
> >> The problem could be the use of % in the left and top attributes.
> >
> > I just confirmed (by replacing the percentages with absolute
> > widths): the percentages are most definitely the problem here. This
> > is a FOP bug. :(
>
> I went digging a bit deeper, and what I found was that somehow the
> value of "16%" got parsed into a FixedLength with an absolute value
> of 160mpt. The relative positioning between the block-containers is
> respected, but the displacement is brought down to only a fraction of
> a pixel.
>
> A fix for the left-percentage is setting the PercentBase on the
> PropertyMaker for "left" to LengthBase.CONTAINING_BLOCK_WIDTH in
> FOPropertyMapping.createAbsolutePositionProperties().
> Although I'm not sure whether that is completely correct. Should the
> 16% be relative to the outer block-container, or to the page (since
> the inner block-containers' positions are also absolute)?
>
> Anyway, for the top-percentage, setting the percent-base still
> doesn't seem to be enough, although it fixes the issue described
> above. The parsed property is no longer a FixedLength.
>
> I'll see if I can track that last one down as well.
>

My understanding of the spec is that for "top" and "bottom" percentages 
only make sense if the containing block has a fixed height. If the 
containing block has a variable height percentages are suppose to be 
ignored and the property value assumed to be "auto".

>
> Cheers,
>
> Andreas

Manuel

Reply via email to