XSL-FO Tutorials - Herong's Tutorial Examples - v2.25, by Herong Yang
"block" with Mixed Content
This section provides a tutorial example showing a 'block' with mixed content of text and child block-level formatting objects. Text will be processed in child blocks first. Then all child blocks will be stacked to produce the final parent block.
Normal, the content of a "block" formatting object is a paragraph of text. But you can also put other formatting objects as part of the content of a "block" formatting object.
If the content of a "block" formatting object is a mixture of text, inline-level formatting objects and block-level formatting objects, the final block area will be generated according to these rules:
Here is my tutorial example, block-with-Mixed-Content.fo, that has a "block" element with mixed content: text and blocks:
<?xml version="1.1" encoding="utf-8"?> <!-- block-with-Mixed-Content.fo - Copyright (c) 2006 HerongYang.com. All Rights Reserved. --> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="page" margin="0.1in" page-height="4in" page-width="3in"> <fo:region-body region-name="body" background-color="#eeeeee"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="page"> <fo:flow flow-name="body"> <fo:block margin="0.1in" padding="0.1in" border-width="1px" border-style="solid" background-color="#ffeeff" font-size="16pt" font-weight="bold"> The Three Little Pigs </fo:block> <fo:block margin="0.1in" border-width="1px" border-style="solid" background-color="#ffdddd"> First paragraph: <fo:block margin="0.1in" padding="0.1in" border-width="1px" border-style="solid" background-color="#eeffff" text-align="justify"> Once upon a time there were three little pigs who lived with their Mother. </fo:block> Second paragraph: <fo:block margin="0.1in" padding="0.1in" border-width="1px" border-style="solid" background-color="#ffffee" text-align="justify"> Early one morning they woke up and their mother said, "you're too big for this house and its time you left home." </fo:block> </fo:block> <fo:block border-width="1px" border-style="solid"/> </fo:flow> </fo:page-sequence> </fo:root>
When you process the above sample XSL-FO document to a PDF file and open it, you will see a big block area that contains some text and two child blocks:
Table of Contents
Apache™ FOP (Formatting Objects Processor)
XSL-FO Document Basics and Examples
►Block-Level Formatting Objects
What Are Block-Level Formatting Objects
What Is "block" Formatting Object?
"block" Formatting Object Examples
Margin Collapsed between Block Areas
space-before/space-after vs. Margin
Block Splitting for Page Break
Controlling White Space Characters
What Is "block-container" Formatting Object?
Inline-Level Formatting Objects
Including Graphics in XSL-FO document
Floating Blocks - "float" and "footnote"
Hyperlinks, Table of Contents and Indexes
Headers and Footers using "static-content"
Font Attributes and Font Families
Apache FOP Font Configurations