The Apache FOP Project

The Apache™ FOP Project

Apache™ FOP Compliance Page

W3C XSL-FO 1.1 Standard

One of Apache™ FOP's design goals is conformance to the W3C XSL-FO 1.1 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.

The following table shows the legend used for the tables below:

yes indicates conformance
partial indicates partial conformance
no indicates a lack of conformance
na indicates that the item is "not applicable" to FOP usually because FOP supports only visual media

XSL-FO Object Support Table (§6)

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

Citation Object Name XSL-FO Conformance Level FOP 1.0 FOP 1.1 FOP dev Comments
§6.4 Declarations and Pagination and Layout Formatting Objects
§6.4.2 root Basic yes yes yes
§6.4.3 declarations Basic yes yes yes
§6.4.4 color-profile Extended yes yes yes
§6.4.5 page-sequence Basic yes yes yes
§6.4.6 page-sequence-wrapper Basic no no no
§6.4.7 layout-master-set Basic yes yes yes
§6.4.8 page-sequence-master Basic yes yes yes
§6.4.9 single-page-master-reference Basic yes yes yes
§6.4.10 repeatable-page-master-reference Basic yes yes yes
§6.4.11 repeatable-page-master-alternatives Extended yes yes yes
§6.4.12 conditional-page-master-reference Extended yes yes yes
§6.4.13 simple-page-master Basic partial partial partial The page width may not change among pages of the same page-sequence unless a forced break is inserted.
§6.4.14 region-body Basic yes yes yes
§6.4.15 region-before Extended yes yes yes
§6.4.16 region-after Extended yes yes yes
§6.4.17 region-start Extended yes yes yes
§6.4.18 region-end Extended yes yes yes
§6.4.19 flow Basic yes yes yes
§6.4.20 static-content Extended yes yes yes
§6.4.21 title Extended yes yes yes
§6.4.22 flow-map Extended no no no
§6.4.23 flow-assignment Extended no no no
§6.4.24 flow-source-list Extended no no no
§6.4.25 flow-name-specifier Extended no no no
§6.4.26 flow-target-list Extended no no no
§6.4.27 region-name-specifier Extended no no no
§6.5 Block Formatting Objects
§6.5.2 block Basic yes yes yes
§6.5.3 block-container Extended partial partial partial
§6.6 Inline Formatting Objects
§6.6.2 bidi-override Extended no yes yes
§6.6.3 character Basic yes yes yes
§6.6.4 initial-property-set Extended no no no
§6.6.5 external-graphic Basic yes yes yes
§6.6.6 instream-foreign-object Extended yes yes yes Built-in support for SVG only, additional namespaces through optional extensions.
§6.6.7 inline Basic yes yes yes
§6.6.8 inline-container Extended no no partial Not all properties are implemented. See FOP-1524
§6.6.9 leader Basic yes yes yes
§6.6.10 page-number Basic yes yes yes
§6.6.11 page-number-citation Extended partial partial partial After the page number is known, no relayout is performed. The appearance may be suboptimal depending on the use case.
§6.6.12 page-number-citation-last Extended partial partial partial Works only for page-sequence so far. After the page number is known, no relayout is performed. The appearance may be suboptimal depending on the use case.
§6.6.13 folio-prefix Extended no no no
§6.6.14 folio-suffix Extended no no no
§6.6.15 scaling-value-citation Extended no no no
§6.7 Table Formatting Objects
§6.7.2 table-and-caption Basic no no no
§6.7.3 table Basic partial partial partial No support for auto layout yet
§6.7.4 table-column Basic yes yes yes
§6.7.5 table-caption Extended no no no
§6.7.6 table-header Basic yes yes yes
§6.7.7 Extended yes yes yes
§6.7.8 table-body Basic yes yes yes
§6.7.9 table-row Basic yes yes yes
§6.7.10 table-cell Basic yes yes yes
§6.8 List Formatting Objects
§6.8.2 list-block Basic yes yes yes
§6.8.3 list-item Basic yes yes yes
§6.8.4 list-item-body Basic yes yes yes
§6.8.5 list-item-label Extended yes yes yes
§6.9 Link and Multi Formatting Objects
§6.9.2 Extended yes yes yes both internal and external supported
§6.9.3 multi-switch Extended no no no
§6.9.4 multi-case Basic no no no
§6.9.5 multi-toggle Extended no no no
§6.9.6 multi-properties Extended no no no
§6.9.7 multi-property-set Extended no no no
§6.10 Formatting Objects for Indexing
§6.10.2 index-page-number-prefix Extended no no no
§6.10.3 index-page-number-suffix Extended no no no
§6.10.4 index-range-begin Extended no no no
§6.10.5 index-range-end Extended no no no
§6.10.6 index-key-reference Extended no no no
§6.10.7 index-page-citation-list Extended no no no
§6.10.8 index-page-citation-list-separator Extended no no no
§6.10.9 index-page-citation-range-separator Extended no no no
§6.11 Formatting Objects for Bookmarks
§6.11.1 bookmark-tree Extended yes yes yes
§6.11.2 bookmark Extended partial partial partial external-destination is not yet supported.
§6.11.3 bookmark-title Extended partial partial partial color, font-style and font-weight are not supported, yet.
§6.12 Out-of-line Formatting Objects
§6.12.2 float Extended no no no
§6.12.3 footnote Extended partial partial partial Restrictions with multi-column documents.
§6.12.4 footnote-body Extended yes yes yes
§6.13 Other Formatting Objects
§6.13.2 change-bar-begin Extended no no no
§6.13.3 change-bar-end Extended no no no
§6.13.4 wrapper Basic yes yes yes Only works as expected with inline-level content.
§6.13.5 marker Extended yes yes yes
§6.13.6 retrieve-marker Extended yes yes yes
§6.13.7 retrieve-table-marker Extended no no partial [FOP dev] initial support: marker element needs to be an element that does not change the BPD of the containing cell.

XSL-FO Property Support Table (§7)

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

Citation Property Name XSL-FO Conformance Level FOP 1.0 FOP 1.1 FOP dev Comments
§7.5 Common Accessibility Properties
§7.5.1 source-document Basic no no no
§7.5.2 role Basic no no no
§7.6 Common Absolute Position Properties
§7.6.1 absolute-position Complete yes yes yes
§7.6.2 top Extended yes yes yes
§7.6.3 right Extended yes yes yes
§7.6.4 bottom Extended yes yes yes
§7.6.5 left Extended yes yes yes
§7.7 Common Aural Properties
§7.7.1 azimuth Basic na na na
§7.7.2 cue-after Basic na na na
§7.7.3 cue-before Basic na na na
§7.7.4 elevation Basic na na na
§7.7.5 pause-after Basic na na na
§7.7.6 pause-before Basic na na na
§7.7.7 pitch Basic na na na
§7.7.8 pitch-range Basic na na na
§7.7.9 play-during Basic na na na
§7.7.10 richness Basic na na na
§7.7.11 speak Basic na na na
§7.7.12 speak-header Basic na na na
§7.7.13 speak-numeral Basic na na na
§7.7.14 speak-punctuation Basic na na na
§7.7.15 speech-rate Basic na na na
§7.7.16 stress Basic na na na
§7.7.17 voice-family Basic na na na
§7.7.18 volume Basic na na na
§7.8 Common Border, Padding, and Background Properties
§7.8.1 background-attachment Extended no no no
§7.8.2 background-color Basic yes yes yes
§7.8.3 background-image Extended yes yes yes
§7.8.4 background-repeat Extended yes yes yes
§7.8.5 background-position-horizontal Extended partial partial partial Ignored when background-repeat set to "repeat" or "repeat-x"
§7.8.6 background-position-vertical Extended partial partial partial Ignored when background-repeat set to "repeat" or "repeat-y"
§7.8.7 border-before-color Basic yes yes yes
§7.8.8 border-before-style Basic yes yes yes
§7.8.9 border-before-width Basic yes yes yes
§7.8.10 border-after-color Basic yes yes yes
§7.8.11 border-after-style Basic yes yes yes
§7.8.12 border-after-width Basic yes yes yes
§7.8.13 border-start-color Basic yes yes yes
§7.8.14 border-start-style Basic yes yes yes
§7.8.15 border-start-width Basic yes yes yes
§7.8.16 border-end-color Basic yes yes yes
§7.8.17 border-end-style Basic yes yes yes
§7.8.18 border-end-width Basic yes yes yes
§7.8.19 border-top-color Basic yes yes yes
§7.8.20 border-top-style Basic yes yes yes
§7.8.21 border-top-width Basic yes yes yes
§7.8.22 border-bottom-color Basic yes yes yes
§7.8.23 border-bottom-style Basic yes yes yes
§7.8.24 border-bottom-width Basic yes yes yes
§7.8.25 border-left-color Basic yes yes yes
§7.8.26 border-left-style Basic yes yes yes
§7.8.27 border-left-width Basic yes yes yes
§7.8.28 border-right-color Basic yes yes yes
§7.8.29 border-right-style Basic yes yes yes
§7.8.30 border-right-width Basic yes yes yes
§7.8.31 padding-before Basic yes yes yes
§7.8.32 padding-after Basic yes yes yes
§7.8.33 padding-start Basic yes yes yes
§7.8.34 padding-end Basic yes yes yes
§7.8.35 padding-top Basic yes yes yes
§7.8.36 padding-bottom Basic yes yes yes
§7.8.37 padding-left Basic yes yes yes
§7.8.38 padding-right Basic yes yes yes
§7.9 Common Font Properties
§7.9.2 font-family Basic partial partial partial font-family lists are allowed but glyph based font selection is not supported
§7.9.3 font-selection-strategy Complete no no no
§7.9.4 font-size Basic yes yes yes
§7.9.5 font-stretch Extended no no no
§7.9.6 font-size-adjust Extended no no no
§7.9.7 font-style Basic yes yes yes
§7.9.8 font-variant Basic no no no
§7.9.9 font-weight Basic partial partial partial TODO <relative> font weights
§7.10 Common Hyphenation Properties
§7.10.1 country Extended yes yes yes For PDF output: Only 2-letter codes from ISO 3166 are supported properly to identify the natural language!
§7.10.2 language Extended yes yes yes For PDF output: Only 2-letter codes from ISO 639 are supported properly to identify the natural language! Also used with complex scripts features.
§7.10.3 script Extended no yes yes Used with complex scripts features to override default script heuristics.
§7.10.4 hyphenate Extended yes yes yes
§7.10.5 hyphenation-character Extended yes yes yes
§7.10.6 hyphenation-push-character-count Extended yes yes yes
§7.10.7 hyphenation-remain-character-count Extended yes yes yes
§7.11 Common Margin Properties - Block
§7.11.1 margin-top Basic yes yes yes
§7.11.2 margin-bottom Basic yes yes yes
§7.11.3 margin-left Basic yes yes yes
§7.11.4 margin-right Basic yes yes yes
§7.11.5 space-before Basic partial partial partial Space adjustment may not fully work everywhere, yet.
§7.11.6 space-after Basic partial partial partial Space adjustment may not fully work everywhere, yet.
§7.11.7 start-indent Basic yes yes yes
§7.11.8 end-indent Basic yes yes yes
§7.12 Common Margin Properties - Inline
§7.12.1 margin-top Basic no no no
§7.12.2 margin-bottom Basic no no no
§7.12.3 margin-left Basic no no no
§7.12.4 margin-right Basic no no no
§7.12.5 space-end Basic no no no
§7.12.6 space-start Basic no no no
§7.13 Common Relative Position Properties
§7.13.1 top Extended no no no
§7.13.2 right Extended no no no
§7.13.3 bottom Extended no no no
§7.13.4 left Extended no no no
§7.13.5 relative-position Extended no no no
§7.14 Area Alignment Properties
§7.14.1 alignment-adjust Basic yes yes yes
§7.14.2 alignment-baseline Basic yes yes yes
§7.14.3 baseline-shift Basic yes yes yes
§7.14.4 display-align Extended partial partial partial TODO Check e-g, i-f-o.
§7.14.5 dominant-baseline Basic yes yes yes
§7.14.6 relative-align Extended no no no
§7.15 Area Dimension Properties
§7.15.1 allowed-height-scale Extended no no no
§7.15.2 allowed-width-scale Extended no no no
§7.15.3 block-progression-dimension Basic yes yes yes
§7.15.4 content-height Extended yes yes yes
§7.15.5 content-width Extended yes yes yes
§7.15.6 height Basic yes yes yes
§7.15.7 inline-progression-dimension Basic yes yes yes
§7.15.8 max-height Complete yes yes yes
§7.15.9 max-width Complete yes yes yes
§7.15.10 min-height Complete yes yes yes
§7.15.11 min-width Complete yes yes yes
§7.15.12 scaling Extended yes yes yes
§7.15.13 scaling-method Extended no no no
§7.15.14 width Basic yes yes yes
§7.16 Block and Line-related Properties
§7.16.1 hyphenation-keep Extended no no no
§7.16.2 hyphenation-ladder-count Extended yes yes yes
§7.16.3 last-line-end-indent Extended yes yes yes
§7.16.4 line-height Basic yes yes yes
§7.16.5 line-height-shift-adjustment Extended yes yes yes
§7.16.6 line-stacking-strategy Basic partial partial partial value "line-height" not supported
§7.16.7 linefeed-treatment Extended yes yes yes
§7.16.8 white-space-treatment Extended partial partial partial inline elements may interfere with correct handling of this property in some cases
§7.16.9 text-align Basic partial partial partial Only start, end, center and justify are supported
§7.16.10 text-align-last Extended partial partial partial Only start, end, center and justify are supported
§7.16.11 text-indent Basic yes yes yes
§7.16.12 white-space-collapse Extended yes yes yes
§7.16.13 wrap-option Basic partial partial partial Only supported on fo:block.
§7.17 Character Properties
§7.17.1 character Basic yes yes yes
§7.17.2 letter-spacing Extended yes yes yes
§7.17.3 suppress-at-line-break Extended no no no
§7.17.4 text-decoration Extended yes yes yes
§7.17.5 text-shadow Extended no no no
§7.17.6 text-transform Extended yes yes yes
§7.17.7 treat-as-word-space Extended no no no
§7.17.8 word-spacing Extended yes yes yes
§7.18 Color-related Properties
§7.18.1 color Basic yes yes yes
§7.18.2 color-profile-name Extended no no no
§7.18.3 rendering-intent Extended no no no
§7.19 Float-related Properties
§7.19.1 clear Extended no no no
§7.19.2 float Extended no no no
§7.19.3 intrusion-displace Extended no no no
§7.20 Keeps and Breaks Properties
§7.20.1 break-after Basic yes yes yes
§7.20.2 break-before Basic yes yes yes
§7.20.3 keep-together Extended partial partial partial [1.0 and later] minimal support for <integer> value.
§7.20.4 keep-with-next Basic partial partial partial Works on all implemented block-level FOs, but not on inline-level FOs. Minimal support for <integer> value.
§7.20.5 keep-with-previous Basic partial partial partial works on all implemented block-level FOs, but not on inline-level FOs. Minimal support for <integer> value.
§7.20.6 orphans Basic yes yes yes
§7.20.7 widows Basic yes yes yes
§7.21 Layout-related Properties
§7.21.1 clip Extended no no no
§7.21.2 overflow Basic yes yes yes
§7.21.3 reference-orientation Extended yes yes yes
§7.21.4 span Extended yes yes yes
§7.22 Leader and Rule Properties
§7.22.1 leader-alignment Extended no no no Not supported
§7.22.2 leader-pattern Basic yes yes yes Value "use-content" does not work in all circumstances.
§7.22.3 leader-pattern-width Extended yes yes yes
§7.22.4 leader-length Basic yes yes yes
§7.22.5 rule-style Basic yes yes yes
§7.22.6 rule-thickness Basic yes yes yes
§7.23 Properties for Dynamic Effects Formatting Objects
§7.23.1 active-state Extended no no no
§7.23.2 auto-restore Extended no no no
§7.23.3 case-name Extended no no no
§7.23.4 case-title Extended no no no
§7.23.5 destination-placement-offset Extended no no no
§7.23.6 external-destination Extended yes yes yes
§7.23.7 indicate-destination Extended no no no
§7.23.8 internal-destination Extended yes yes yes
§7.23.9 show-destination Extended partial partial partial [1.0 and later] only has effect in PDF output, for external PDF destinations (links pointing to destinations in another PDF), and only works reliably when the PDF is viewed in a standalone PDF viewer.

Adobe's browser plugin, for example, ignores the /NewWindow flag.

§7.23.10 starting-state Extended partial partial partial support for starting-state on fo:bookmark
§7.23.11 switch-to Extended no no no
§7.23.12 target-presentation-context Extended no no no
§7.23.13 target-processing-context Extended no no no
§7.23.14 target-stylesheet Extended no no no
§7.24 Properties for Indexing
§7.24.1 index-class Extended no no no
§7.24.2 index-key Extended no no no
§7.24.3 page-number-treatment Extended no no no
§7.24.4 merge-ranges-across-index-key-references Extended no no no
§7.24.5 merge-sequential-page-numbers Extended no no no
§7.24.6 merge-pages-across-index-key-references Extended no no no
§7.24.7 ref-index-key Extended no no no
§7.25 Properties for Markers
§7.25.1 marker-class-name Extended yes yes yes
§7.25.2 retrieve-boundary-within-table Extended no no no
§7.25.3 retrieve-class-name Extended yes yes yes
§7.53.4 retrieve-position Extended yes yes yes
§7.25.5 retrieve-boundary Extended yes yes yes
§7.25.6 retrieve-position-within-table Extended no no no
§7.26 Properties for Number to String Conversion
§7.26.1 format Basic partial yes yes [1.0 and earlier] only values '0*1', 'a', 'A', 'i', 'I' supported
§7.26.2 grouping-separator Extended no yes yes
§7.26.3 grouping-size Extended no yes yes
§7.26.4 letter-value Basic no yes yes
§7.27 Pagination and Layout Properties
§7.27.1 blank-or-not-blank Extended yes yes yes
§7.27.2 column-count Extended yes yes yes
§7.27.3 column-gap Extended yes yes yes
§7.27.4 extent Extended yes yes yes
§7.27.5 flow-name Basic yes yes yes
§7.27.6 force-page-count Extended yes yes yes
§7.27.7 initial-page-number Basic yes yes yes
§7.27.8 master-name Basic yes yes yes
§7.27.9 master-reference Basic yes yes yes
§7.27.10 maximum-repeats Extended yes yes yes
§7.27.11 media-usage Extended no no no
§7.27.12 odd-or-even Extended yes yes yes
§7.27.13 page-height Basic partial partial partial value "indefinite" not yet supported
§7.27.14 page-position Extended yes yes yes value "only" not supported
§7.27.15 page-width Basic partial partial partial value "indefinite" not yet supported
§7.27.16 precedence Extended yes yes yes
§7.27.17 region-name Basic yes yes yes
§7.27.18 flow-map-name Extended no no no
§7.27.19 flow-map-reference Extended no no no
§7.27.20 flow-name-reference Extended no no no
§7.27.21 region-name-reference Extended no no no
§7.28 Table Properties
§7.28.1 border-after-precedence Basic no no no
§7.28.2 border-before-precedence Basic no no no
§7.28.3 border-collapse Extended partial partial partial value "collapse-with-precedence" not yet supported
§7.28.4 border-end-precedence Basic no no no
§7.28.5 border-separation Extended yes yes yes
§7.28.6 border-start-precedence Basic no no no
§7.28.7 caption-side Complete no no no
§7.28.8 column-number Basic yes yes yes
§7.28.9 column-width Basic yes yes yes
§7.28.10 empty-cells Extended no no no
§7.28.11 ends-row Extended yes yes yes
§7.28.12 number-columns-repeated Basic yes yes yes
§7.28.13 number-columns-spanned Basic yes yes yes
§7.28.14 number-rows-spanned Basic yes yes yes
§7.28.15 starts-row Extended yes yes yes
§7.28.16 table-layout Extended no no no
§7.28.17 Extended yes yes yes
§7.28.18 table-omit-header-at-break Extended yes yes yes
§7.29 Writing-mode-related Properties
§7.29.1 direction Basic no no no
§7.29.2 glyph-orientation-horizontal Extended no no no
§7.29.3 glyph-orientation-vertical Extended no no no
§7.29.4 text-altitude Extended no no no
§7.29.5 text-depth Extended no no no
§7.29.6 unicode-bidi Extended no no no
§7.29.7 writing-mode Basic no partial partial [1.1 and later] only horizontal left-to-right and right-to-left modes
§7.30 Miscellaneous Properties
§7.30.1 change-bar-class Extended no no no
§7.30.2 change-bar-color Extended no no no
§7.30.3 change-bar-offset Extended no no no
§7.30.4 change-bar-placement Extended no no no
§7.30.5 change-bar-style Extended no no no
§7.30.6 change-bar-width Extended no no no
§7.30.7 content-type Extended no no no
§7.30.8 id Basic partial partial partial IDs on table-header, table-footer, table-body, table-row, table-and-caption, table-caption, inline-container and bidi-override are not available, yet.
§7.30.9 intrinsic-scale-value Extended no no no
§7.30.10 page-citation-strategy Extended no no no
§7.30.11 provisional-label-separation Basic yes yes yes
§7.30.12 provisional-distance-between-starts Basic yes yes yes
§7.30.13 ref-id Extended yes yes yes
§7.30.14 scale-option Extended no no no
§7.30.15 score-spaces Extended no no no
§7.30.16 src Basic yes yes yes
§7.30.17 visibility Extended no no no
§7.30.18 z-index Extended no no no
§7.31 Shorthand Properties
§7.31.1 background Complete no no no
§7.31.2 background-position Complete yes yes yes
§7.31.3 border Complete yes yes yes
§7.31.4 border-bottom Complete yes yes yes
§7.31.5 border-color Complete yes yes yes
§7.31.6 border-left Complete yes yes yes
§7.31.7 border-right Complete yes yes yes
§7.31.8 border-style Complete yes yes yes
§7.31.9 border-spacing Complete yes yes yes
§7.31.10 border-top Complete yes yes yes
§7.31.11 border-width Complete yes yes yes
§7.31.12 cue Complete na na na
§7.31.13 font Complete partial partial partial Enum values other than "inherit" not yet supported.
§7.31.14 margin Complete yes yes yes
§7.31.15 padding Complete yes yes yes
§7.31.16 page-break-after Complete yes yes yes
§7.31.17 page-break-before Complete yes yes yes
§7.31.18 page-break-inside Complete yes yes yes
§7.31.19 pause Complete na na na
§7.31.20 position Complete yes yes yes
§7.31.21 size Complete no no no
§7.31.22 vertical-align Complete partial partial partial Percentages are not supported, yet.
§7.31.23 white-space Complete yes yes yes
§7.31.24 xml:lang Complete yes yes yes Very basic parsing; no validation of the specified value.

XSL-FO Core Function Library Support Table (§5.10)

The following is a summary of FOP's current support for the XSL-FO Core Function Library.

Citation Function Name XSL-FO Conformance Level FOP 1.0 FOP 1.1 FOP dev Comments
§5.10.1 Number Functions
§5.10.1 floor Basic yes yes yes
§5.10.1 ceiling Basic yes yes yes
§5.10.1 round Basic yes yes yes
§5.10.1 min Basic yes yes yes
§5.10.1 max Basic yes yes yes
§5.10.1 abs Basic yes yes yes
§5.10.2 Color Functions
§5.10.2 rgb Basic yes yes yes
§5.10.2 rgb-icc Basic yes yes yes
§5.10.2 system-color Basic yes yes yes
§5.10.3 Font Functions
§5.10.3 system-font Basic no no no
§5.10.4 Property Value Functions
§5.10.4 inherited-property-value Basic yes yes yes
§5.10.4 label-end Basic yes yes yes
§5.10.4 body-start Basic yes yes yes
§5.10.4 from-parent Basic yes yes yes
§5.10.4 from-nearest-specified-value Basic yes yes yes
§5.10.4 from-page-master-region Basic no no no
§5.10.4 from-table-column Basic yes yes yes
§5.10.4 proportional-column-width Basic yes yes yes
§5.10.4 merge-property-values Basic no no no