Page Header in region-before Area

This section provides a tutorial example on how to generate page headers using a block-container in a static-content of the page-sequence, and mapped to the region-before in the layout.

If you want to generate page headers with XSL-FO documents, you need to following guidelines:

1. Declare a simple-page-master layout with region-before in addition to region-body, if you want page headers to show up on the "before" edge of the page.

2. Specify region-before[@extent] wide enough to hold the header content.

3. Specify region-body[@margin-top] wider than region-before[@extent], so that page body content does not overlap with the page header.

4. Add a static-content formatting object inside the page-sequence that uses the layout.

5. Specify static-content[@flow-name] with the region-before[@region-name] value from the layout.

6. Add a block formatting object inside the static-content to generate page header content.

7. If you want a line to separate page header from page body, you can turn on the bottom border of the block.

8. If you want to lower the header content to the bottom of the region-before area, you can wrap the header content in a block-container of the same height and display-align="after".

Here is my tutorial example,, that generates page headers using a block-container in a static-content of the page-sequence, and mapped to the region-before in the layout:

<?xml version="1.0" encoding="utf-8"?>
 - Copyright (c) 2006 All Rights Reserved.
<fo:root xmlns:fo="">
  <fo:simple-page-master master-name="my_page" 
   margin="0.1in" page-height="3.3in" page-width="2.55in">
   <fo:region-body region-name="my_body" background-color="#eeeeee"
   <fo:region-before region-name="my_header" 
    background-color="#ffeeee" extent="0.3in"/>
 <fo:page-sequence master-reference="my_page">
  <fo:static-content flow-name="my_header">
   <fo:block-container height="0.3in" display-align="after">
    <fo:block text-align="end" font-size="9pt"
     border-bottom-width="1px" border-bottom-style="solid">
     Page <fo:page-number/>
  <fo:flow flow-name="my_body">
   <fo:block text-align="center" margin-top="6pt"
    font-weight="bold">Little Snow-White
   <fo:block text-align="justify" margin-top="6pt">
Once upon a time in midwinter, when the snowflakes were falling like 
feathers from heaven, a queen sat sewing at her window, which had a 
frame of black ebony wood. As she sewed she looked up at the snow and 
pricked her finger with her needle. Three drops of blood fell into the
snow. The red on the white looked so beautiful that she thought to 
herself, "If only I had a child as white as snow, as red as blood, 
and as black as the wood in this frame."
   <fo:block text-align="justify" margin-top="6pt">
Soon afterward she had a little daughter who was as white as snow, as 
red as blood, and as black as ebony wood, and therefore they called 
her Little Snow-White. And as soon as the child was born, the queen 

If you process this example XSL-FO document with Apache FOP to a PDF file, you will see a simple page header displayed on all pages:

Page Header in region-before Area
Page Header in region-before Area

Table of Contents

 About This Book

 Introduction of XSL-FO

 Apache™ FOP (Formatting Objects Processor)

 RenderX XEP as an XSL-FO Tool

 Introduction of Area Model

 XSL-FO Document Basics and Examples

 Page Layout Masters

 Block-Level Formatting Objects

 Inline-Level Formatting Objects

 Including Graphics in XSL-FO document

 Table of Rows and Columns

 List, Item, Label, and Body

 Floating Blocks - "float" and "footnote"

 Hyperlinks, Table of Contents and Indexes

Headers and Footers using "static-content"

Page Header in region-before Area

 Page Header with 3 Parts

 Page Footer with 3 Parts

 Page Headers for Multiple Chapters

 Font Attributes and Font Families

 Apache FOP Font Configurations

 RenderX XEP Font Configurations

 Converting HTML to PDF


 Full Version in PDF/ePUB