xmlgraphics-fop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeremias Maerki <dev.jerem...@greenmail.ch>
Subject Re: Handling of block-level FOs inside fo:inline and related
Date Wed, 03 Aug 2005 20:32:10 GMT
I'd appreciate if you'd take this to a branch (or I can do it for you
with the patch you posted). That way everybody can help and branches are
really easy with SVN now. ATM I only have to do an estimate not
necessarily the actual implementation. My next scheduled task is the PS
Renderer. So I don't know when I will have time to work on it, but I'll
definitely have a closer look. Thanks for making the patch!

On 03.08.2005 22:00:27 Simon Pepping wrote:
> I have been working on that, rather slowly, as I do not have much
> time.
> 
> My solution for the Knuth Elements is that each inline level LM
> returns a list of Knuth sequences, inline or block. This part works
> well.
> 
> The code works well for fo:inline with inline or block content. I have
> not yet implemented it in other LMs except BasicLinkLM.
> 
> I have done some work for rendering. But I am not very familiar with
> that part of FOP, and have not yet paid attention to details.
> 
> I will post a patch on Bugzilla. The present state of the code breaks
> other inline level LMs as they do not yet return the correct data
> structure for the next Knuth elements. Therefore I cannot commit it to
> HEAD. I could commit it into a branch.
> 
> For the next few weeks I will also spend a lot of time on other
> things. So, if I am progressing too slowly, someone else should feel
> free to take this further.
> 
> Regards, Simon
> 
> On Wed, Aug 03, 2005 at 08:30:56PM +0200, Jeremias Maerki wrote:
> > fo:inline, fo:bidi-override and fo:inline-container are all inline-level
> > FOs and all allow block-level content. Currently, they are not
> > implemented. See, for example, inline1.xml which fails with a
> > ClassCastException. The FO I skipped here is fo:wrapper which in the
> > current implementation doesn't really wrap its content and therefore
> > avoids an important problem:
> > 
> > Inline FOs return element lists processed by the line breaker. They
> > don't have a way to return elements for the page breaker.
> > 
> > I've been asked to do a time estimate for implementing fo:inline.
> > fo:inline is particularly important since a lot of people use empty
> > fo:blocks, for example, to mimic newlines. Now I wonder about how to
> > implement fo:inline. The only way I came up with was to try normalizing
> > the FO tree and to let fo:inline be what it currently is:
> > 
> > Input:
> > 
> > <fo:block color="blue">blah blah <fo:inline font-style="italic">blah<fo:block/>blah</fo:inline>blah</fo:block>
> > 
> > Output:
> > 
> > <fo:block color="blue">blah blah <fo:inline font-style="italic">blah</fo:block>
> > <fo:block color="blue" font-style="italic"/>
> > <fo:block color="blue" ><fo:inline font-style="italic">blah</fo:inline>blah</fo:block>
> > 
> > or:
> > 
> > <fo:block color="blue">
> >   <fo:block>blah blah <fo:inline font-style="italic">blah</fo:block>
> >   <fo:block font-style="italic"/>
> >   <fo:block><fo:inline font-style="italic">blah</fo:inline>blah</fo:block>
> > </fo:block>
> > 
> > Replicating the properties of an fo:inline to a copy shouldn't be much
> > of a problem. Replicating the properties for the contained block might
> > already me a little more difficult because of the whole inheritance
> > stuff.
> > 
> > Is there another way? A better way? Any ideas?
> > 
> > For fo:bidi-override, the same approach would be used.
> > 
> > For fo:inline-container this whole thing is easier since it generates a
> > viewport/reference pair, so it will ultimately need its own breaker
> > (like absolutely positioned block-containers).
> > 
> > 
> > Jeremias Maerki
> > 
> 
> -- 
> Simon Pepping
> home page: http://www.leverkruid.nl



Jeremias Maerki


Mime
View raw message