Apache XML FOP

the Apache XML site
 
   

FOP 0.20.4 Standards Compliance

PDF
PDF

W3C XSL-FO 1.0 Standard

One of FOP's design goals is conformance to the W3C XSL-FO 1.0 standard, which specifies three levels of "conformance": basic, extended, and complete. Although FOP does not currently conform to any of these levels, it is nevertheless a useful work-in-progress for many applications. The information presented here demonstrates FOP's progress toward the goal of conformance, which progress consists of implementation of specific objects and properties in the standard. The information presented is useful not only to the developers as a sort of "to do" list, but also for setting proper expectations for users and potential users.

In the tables below, blue indicates support at the specified level of conformance, and red indicates a lack of support.

XSL-FO Object Support (§6)

The following is a summary of FOP's current support for the standard XSL-FO objects.

Object Name

Citation Support Comments
BasicExtendedComplete
Declarations and Pagination and Layout Formatting Objects (§6.4)
root§6.4.2yes...
declarations§6.4.3no...
color-profile§6.4.4.no..
page-sequence§6.4.5yes...
layout-master-set§6.4.6yes...
page-sequence-master§6.4.7yes...
single-page-master-reference§6.4.8yes...
repeatable-page-master-reference§6.4.9yes...
repeatable-page-master-alternatives§6.4.10.yes..
conditional-page-master-reference§6.4.11.yes..
simple-page-master§6.4.12yes...
region-body§6.4.13yes...
region-before§6.4.14.yes..
region-after§6.4.15.yes..
region-start§6.4.16.yes..
region-end§6.4.17.yes..
flow§6.4.18yes...
static-content§6.4.19.yes..
title§6.4.20.no..
Block Formatting Objects (§6.5)
block§6.5.2yes...
block-container§6.5.3.partial..
Inline Formatting Objects (§6.6)
bidi-override§6.6.2.no..
character§6.6.3yes...
initial-property-set§6.6.4.no..
external-graphic§6.6.5yes...
instream-foreign-object§6.6.6.yes..
inline§6.6.7yes...
inline-container§6.6.8.no..
leader§6.6.9partial...
page-number§6.6.10yes...
page-number-citation§6.6.11.partial.
  • Only works for table of contents without any problems. The case where the page number doesn't fit on a line isn't handled, and any text on the same line and after the page-number might not appear exactly where you want it to.
Table Formatting Objects (§6.7)
table-and-caption§6.7.2no...
table§6.7.3yes...
table-column§6.7.4yes..
  • you must explicitly specify column widths
table-caption§6.7.5.no..
table-header§6.7.6yes...
table-footer§6.7.7.yes..
table-body§6.7.8yes...
table-row§6.7.9yes...
table-cell§6.7.10yes..
  • must contain block-level FOs (cannot contain straight character data)
List Formatting Objects (§6.8)
list-block§6.8.2yes...
list-item§6.8.3yes...
list-item-body§6.8.4yes...
list-item-label§6.8.5.yes..
Link and Multi Formatting Objects (§6.9)
basic-link§6.9.2.yes.
  • both internal and external supported
multi-switch§6.9.3.no..
multi-case§6.9.4no...
multi-toggle§6.9.5.no..
multi-properties§6.9.6.no..
multi-property-set§6.9.7.no..
Out-of-line Formatting Objects (§6.10)
float§6.10.2.no..
footnote§6.10.3.yes..
footnote-body§6.10.4.yes..
Other Formatting Objects (§6.11)
wrapper§6.11.2yes...
marker§6.11.3.yes..
retrieve-marker§6.11.4.yes..

XSL-FO Property Support (§7)

The following is a summary of FOP's current support for the standard XSL-FO properties. Please note that a number of properties and categories of properties are not supported because they do not apply to documents in visual formats.

Property Name

Citation Support Comments
BasicExtendedComplete
Common Accessibility Properties (§7.4)
source-document§7.4.1na...
role§7.4.2na...
Common Absolute Position Properties (§7.5)
absolute-position§7.5.1..no.
top§7.5.2.yes..
right§7.5.3.yes..
bottom§7.5.4.yes..
left§7.5.5.yes..
Common Aural Properties (§7.6)
azimuth§7.6.1na...
cue-after§7.6.2na...
cue-before§7.6.3na...
elevation§7.6.4na...
pause-after§7.6.5na...
pause-before§7.6.6na...
pitch§7.6.7na...
pitch-range§7.6.8na...
play-during§7.6.9na...
richness§7.6.10na...
speak§7.6.11na...
speak-header§7.6.12na...
speak-numeral§7.6.13na...
speak-punctuation§7.6.14na...
speech-rate§7.6.15na...
stress§7.6.16na...
voice-family§7.6.17na...
volume§7.6.18na...
Common Border, Padding, and Background Properties (§7.7)
background-attachment§7.7.1.no..
background-color§7.7.2yes...
background-image§7.7.3.yes..
background-repeat§7.7.4.no..
background-position-horizontal§7.7.5.no..
background-position-vertical§7.7.6.no..
border-before-color§7.7.7yes...
border-before-style§7.7.8yes..
  • only "solid" works
border-before-width§7.7.9yes...
border-after-color§7.7.10yes...
border-after-style§7.7.11yes..
  • only "solid" works
border-after-width§7.7.12yes...
border-start-color§7.7.13yes...
border-start-style§7.7.14yes..
  • only "solid" works
border-start-width§7.7.15yes...
border-end-color§7.7.16yes...
border-end-style§7.7.17yes..
  • only "solid" works
border-end-width§7.7.18yes...
border-top-color§7.7.19yes...
border-top-style§7.7.20yes..
  • only "solid" works
border-top-width§7.7.21yes...
border-bottom-color§7.7.22yes...
border-bottom-style§7.7.23yes..
  • only "solid" works
border-bottom-width§7.7.24yes...
border-left-color§7.7.25yes...
border-left-style§7.7.26yes..
  • only "solid" works
border-left-width§7.7.27yes...
border-right-color§7.7.28yes...
border-right-style§7.7.29yes..
  • only "solid" works
border-right-width§7.7.30yes...
padding-before§7.7.31yes..
  • only one value allowed
  • only implemented for blocks
  • can't be used to make extra space (use indents + spaces instead)
  • can be used to control how much the background-color extends beyond the content rectangle
padding-after§7.7.32yes..
  • same limitations as padding-before
padding-start§7.7.33yes..
  • same limitations as padding-before
padding-end§7.7.34yes..
  • same limitations as padding-before
padding-top§7.7.35yes..
  • same limitations as padding-before
padding-bottom§7.7.36yes..
  • same limitations as padding-before
padding-left§7.7.37yes..
  • same limitations as padding-before
padding-right§7.7.38yes..
  • same limitations as padding-before
Common Font Properties (§7.8)
font-family§7.8.2yes..
  • font-family lists are not supported, use a single font-family name
font-selection-strategy§7.8.3..no.
font-size§7.8.4yes...
font-stretch§7.8.5.no..
font-size-adjust§7.8.6.no..
font-style§7.8.7yes...
font-variant§7.8.8no...
font-weight§7.8.9yes...
Common Hyphenation Properties (§7.9)
country§7.9.1.yes..
language§7.9.2.yes..
script§7.9.3.no..
hyphenate§7.9.4.yes..
hyphenation-character§7.9.5.yes..
hyphenation-push-character-count§7.9.6.yes..
hyphenation-remain-character-count§7.9.7.yes..
Common Margin Properties - Block (§7.10)
margin-top§7.10.1partial..
  • only on pages and regions
margin-bottom§7.10.2partial..
  • only on pages and regions
margin-left§7.10.3partial..
  • only on pages and regions
margin-right§7.10.4partial..
  • only on pages and regions
space-before§7.10.5partial..
  • space-before.optimum supported
space-after§7.10.6partial..
  • space-after.optimum supported
start-indent§7.10.7yes...
end-indent§7.10.8yes...
Common Margin Properties - Inline (§7.11)
space-end§7.11.1no...
space-start§7.11.2no...
Common Relative Position Properties (§7.12)
relative-position§7.12.1.no..
Area Alignment Properties (§7.13)
alignment-adjust§7.13.1no...
alignment-baseline§7.13.2no...
baseline-shift§7.13.3no...
display-align§7.13.4.partial.
  • Implemented only for table-cell and block-container.
  • For table-cell, the "height" attribute must be set for the parent table-row; setting the height of the table or the table-cell results in vertical centering having no effect.
dominant-baseline§7.13.5no...
relative-align§7.13.6.no..
Area Dimension Properties (§7.14)
block-progression-dimension§7.14.1no...
content-height§7.14.2.no..
content-width§7.14.3.no..
height§7.14.4yes...
inline-progression-dimension§7.14.5no...
max-height§7.14.6..no.
max-width§7.14.7..no.
min-height§7.14.8..no.
min-width§7.14.9..no.
scaling§7.14.10.no..
scaling-method§7.14.11.no..
width§7.14.12yes...
Block and Line-related Properties (§7.15)
hyphenation-keep§7.15.1.no..
hyphenation-ladder-count§7.15.2.no..
last-line-end-indent§7.15.3.no..
line-height§7.15.4yes...
line-height-shift-adjustment§7.15.5.no..
line-stacking-strategy§7.15.6no...
linefeed-treatment§7.15.7.no..
white-space-treatment§7.15.8.no..
text-align§7.15.9partial..
  • Only start, end, center and justify are supported
text-align-last§7.15.10.partial.
  • Only start, end, center and justify are supported
text-indent§7.15.11yes...
white-space-collapse§7.15.12.yes..
wrap-option§7.15.13yes...
Character Properties (§7.16)
character§7.16.1yes...
letter-spacing§7.16.2.yes..
suppress-at-line-break§7.16.3.no..
text-decoration§7.16.4.yes..
text-shadow§7.16.5.no..
text-transform§7.16.6.no..
treat-as-word-space§7.16.7.no..
word-spacing§7.16.8.no..
Color-related Properties (§7.17)
color§7.17.1yes...
color-profile-name§7.17.2.no..
rendering-intent§7.17.3.no..
Float-related Properties (§7.18)
clear§7.18.1.no..
float§7.18.2.no..
intrusion-displace§7.18.3.no..
Keeps and Breaks Properties (§7.19)
break-after§7.19.1yes...
break-before§7.19.2yes...
keep-together§7.19.3.partial.
  • works only in table rows
keep-with-next§7.19.4partial..
  • works only in table rows
keep-with-previous§7.19.5partial..
  • works only in table rows
orphans§7.19.6no...
widows§7.19.7no...
Layout-related Properties (§7.20)
clip§7.20.1.no..
overflow§7.20.2no...
reference-orientation§7.20.3.no.
  • Workaround for page-orientation (portrait vs. landscape) is to swap the page-width and page-height properties.
  • Workaround for block-container is to use SVG.
span§7.20.4.yes..
Leader and Rule Properties (§7.21)
leader-alignment§7.21.1.yes.
  • not value "page"
leader-pattern§7.21.2yes..
  • not value "use-content"
leader-pattern-width§7.21.3.yes..
leader-length§7.21.4yes..
  • leader-length.minimum is not used at all
rule-style§7.21.5yes...
rule-thickness§7.21.6yes...
Properties for Dynamic Effects Formatting Objects (§7.22)
active-state§7.22.1.no..
auto-restore§7.22.2.no..
case-name§7.22.3.no..
case-title§7.22.4.no..
destination-placement-offset§7.22.5.no..
external-destination§7.22.6.yes..
indicate-destination§7.22.7.no..
internal-destination§7.22.8.yes..
show-destination§7.22.9.no..
starting-state§7.22.10.no..
switch-to§7.22.11.no..
target-presentation-context§7.22.12.no..
target-processing-context§7.22.13.no..
target-stylesheet§7.22.14.no..
Properties for Markers (§7.23)
marker-class-name§7.23.1.no..
retrieve-class-name§7.23.2.no..
retrieve-position§7.23.3.no..
retrieve-boundary§7.23.4.no..
Properties for Number to String Conversion (§7.24)
format§7.24.1no...
grouping-separator§7.24.2.no..
grouping-size§7.24.3.no..
letter-value§7.24.4no...
Pagination and Layout Properties (§7.25)
blank-or-not-blank§7.25.1.yes..
column-count§7.25.2.yes..
column-gap§7.25.3.yes..
extent§7.25.4.yes..
flow-name§7.25.5yes...
force-page-count§7.25.6.no..
initial-page-number§7.25.7yes...
master-name§7.25.8yes...
master-reference§7.25.9yes...
maximum-repeats§7.25.10.yes..
media-usage§7.25.11.no..
odd-or-even§7.25.12.yes..
page-height§7.25.13yes...
page-position§7.25.14.partial.
  • "last" isn't implemented!
page-width§7.25.15yes...
precedence§7.25.16.no..
region-name§7.25.17yes...
Table Properties (§7.26)
border-after-precedence§7.26.1no...
border-before-precedence§7.26.2no...
border-collapse§7.26.3.no..
border-end-precedence§7.26.4no...
border-separation§7.26.5.no..
border-start-precedence§7.26.6no...
caption-side§7.26.7..no.
column-number§7.26.8no...
column-width§7.26.9partial..
  • "percentage" not implemented. Workaround is to use the XSL-FO "proportional-column-width" function.
empty-cells§7.26.10.no..
ends-row§7.26.11.no..
number-columns-repeated§7.26.12no...
number-columns-spanned§7.26.13yes...
number-rows-spanned§7.26.14yes...
starts-row§7.26.15.no..
table-layout§7.26.16.no..
table-omit-footer-at-break§7.26.17.yes..
table-omit-header-at-break§7.26.18.yes..
Writing-mode-related Properties (§7.27)
direction§7.27.1no...
glyph-orientation-horizontal§7.27.2.no..
glyph-orientation-vertical§7.27.3.no..
text-altitude§7.27.4.no..
text-depth§7.27.5.no..
unicode-bidi§7.27.6.no..
writing-mode§7.27.7no...
Miscellaneous Properties (§7.28)
content-type§7.28.1.no..
id§7.28.2yes...
provisional-label-separation§7.28.3yes...
provisional-distance-between-starts§7.28.4yes...
ref-id§7.28.5.yes..
score-spaces§7.28.6.no..
src§7.28.7yes...
visibility§7.28.8.no..
z-index§7.28.9.no..
Shorthand Properties (§7.29)
background§7.29.1..no.
background-position§7.29.2..no.
border§7.29.3..no.
border-bottom§7.29.4..yes.
border-color§7.29.5..yes
  • only one value allowed
border-left§7.29.6..yes.
border-right§7.29.7..yes.
border-style§7.29.8..yes
  • only "solid" works
border-spacing§7.29.9..no.
border-top§7.29.10..yes.
border-width§7.29.11..yes.
cue§7.29.12..no.
font§7.29.13..no.
margin§7.29.14..partial
  • only on pages and regions
padding§7.29.15..partial
  • only one value allowed
  • only implemented for blocks
  • can't be used to make extra space (use indents + spaces instead)
  • can be used to control how much the background-color extends beyond the content rectangle
page-break-after§7.29.16..no.
page-break-before§7.29.17..no.
page-break-inside§7.29.18..no.
pause§7.29.19..no.
position§7.29.20..partial
  • "inherit" not handled
size§7.29.21..no.
vertical-align§7.29.22..no.
white-space§7.29.23..no.
xml:lang§7.29.24..no.