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