Inline area generating LMs and Inline area containing LMs and their corresponding FO nodes =========================================================
In the listings below the LMs are followed by the FO nodes that generate them. The following LMs may occur in inline content --------------------------------------------- BidiLayoutManager extends LeafNodeLayoutManager: BidiOverride ContentLayoutManager: Leader with use-content property set ICLayoutManager extends LeafNodeLayoutManager: InlineContainer InlineStackingLayoutManager: FObjMixed, Inline, BasicLink (anonymous subclass), LeafNodeLayoutManager: Leader (anonymous subclass, may insert other LMs), Character, ExternalGraphic, InstreamForeignObject, PageNumber (anonymous subclass), PageNumberCitation (anonymous subclass) RetrieveMarkerLayoutManager (depending on the marker): RetrieveMarker TextLayoutManager: FOText ToBeImplementedElementLayoutManager: MultiSwitch, MultiPropertySet, MultiToggle The following LMs may contain #PCDATA or inline content ------------------------------------------------------- InlineStackingLayoutManager: Title LeafNodeLayoutManager: Leader (anonymous subclass, may insert other LMs) The following LMs may contain #PCDATA, inline or block content -------------------------------------------------------------- InlineStackingLayoutManager: Inline, BasicLink (anonymous subclass), Marker LineLayoutManager: Block ToBeImplementedElementLayoutManager: MultiCase, MultiToggle For the FO nodes and their LMs, see AddLMVisitor. For inline content, see the FO spec., sections 6.2 Formatting Object Content, 6.6, Inline-level Formatting Objects, 6.9 Dynamic Effects: Link and Multi Formatting Objects. For content models, see the FO spec., section 6. This is a block element that uses most of them (substitute some other name for the graphic): <fo:block language="en" country="US" hyphenate="true" text-align="justify"> We start with some normal text. A character FO: <fo:character character="A"/> An external graphic: <fo:external-graphic src="Question.gif"/> An SVG graphic: <fo:instream-foreign-object id="svg"> <svg:svg width="20" height="20" xml:space="preserve"> <svg:g style="fill:red; stroke:#000000"> <svg:rect x="0" y="0" width="15" height="15"/> <svg:rect x="5" y="5" width="15" height="15"/> </svg:g> </svg:svg> </fo:instream-foreign-object> <fo:inline background-color="blue"> A text with a blue background. </fo:inline> A ruled leader: <fo:leader leader-length="120pt" leader-length.maximum="200pt" leader-pattern="rule"/> <fo:inline background-color="blue"> A text with a blue background, <fo:inline background-color="red"> and some text with a red background (<fo:basic-link internal-destination="svg">SVG</fo:basic-link>) </fo:inline> inside it. </fo:inline> A leader using a content pattern: <fo:leader leader-length="120pt" leader-length.maximum="200pt" leader-pattern="use-content">X<fo:inline background-color="red">X</fo:inline></fo:leader> This is page number <fo:page-number/>. The SVG graphic is on page number <fo:page-number-citation ref-id="svg"/>. This is a link to the <fo:basic-link internal-destination="svg"><fo:inline background-color="red">SVG</fo:inline> graphic</fo:basic-link>. We end with some normal text. </fo:block> Note that Luca's patch causes a loop on this block. The null implementation of AbstractLayoutManager.getNextKnuthElement causes this. It should be modified to finish the LM: public KnuthElement getNextKnuthElement() { setFinished(true); return null; } Regards, Simon -- Simon Pepping home page: http://www.leverkruid.nl