You should encounter very few issues in upgrading from FOP 1.0, except as noted in the following:
version
attribute has been added to the root
document
element. Since no version information was provided previously, the initial
value of this attribute is 2.0
. Future backward compatible changes will update the minor
version number, while future non-backward compatible changes will update the major version number.
text
element, a new alternate representation is used for adjustments to glyph positions as expressed by a dp
attribute instead of the dx
attribute. For further information, see
complex
script patch - intermediate format changes.
border-rect
element, the attributes {before
, after
, start
, end
}
have been renamed to {top
, bottom
, left
, right
}, respectively.
For further information, see
complex
script patch - intermediate format changes.
IFPainter
interface (of package org.apache.fop.render.intermediate
), specifically the
drawText
and drawBorderRect
method signatures, have been modified to express the semantics of the above changes to the IF output format.
version
attribute has been added to the root
areaTree
element. Since no version information was provided previously, the initial
value of this attribute is 2.0
. Future backward compatible changes will update the minor
version number, while future non-backward compatible changes will update the major version number.
level
attribute has been added to a number of element types to express resolved bidirectional level.
reversed
attribute has been added to the word
element type to express that the glyphs that
correspond to the character content of the element should be reversed (in order) in the inline progression dimension when rendering.
kern
table and
also supports the advanced typographic kern
feature with a GPOS
table. In FOP 1.0, the former is used for kerning,
while in FOP 1.1 with complex script features enabled, the latter is used. If it is desired to explicitly use the kern
table (rather
than the GPOS
table) in such a case, then the -nocs
command line option may be used when invoking FOP
in order to disable complex script features.
If you're planning to upgrade to the latest Apache™ FOP version from a pre-1.0 version, there are a few very important things to consider:
The new code is much more strict about the interpretation of the XSL-FO specification. Things that worked fine in version 0.20.5 might start to produce warnings or even errors now. FOP 0.20.5 contains many bugs which have been corrected in the new code.
fo:table-cell
elements, the new code
will complain about that (unless relaxed validation is enabled) because the specification
demands at least one block-level element ((%block;)+
, see
XSL-FO 1.1, 6.7.10)
inside an fo:table-cell
element.
When you use your existing FO files or XML/XSL files which work fine with FOP version 0.20.5 against this FOP version some things may not work as expected. The following list will hopefully help you to identify and correct those problems.
<fo:table-cell></fo:table-cell>
are not allowed by the specification. The same applies to empty fo:static-content
and fo:block-container
elements, for example.
external-graphic
)
or instream-foreign-object
objects. If images or SVGs are sized differently in your outputs with the new FOP version
check Bug 37136
as it contains some hints on what to do. The file
"examples/fo/basic/images.fo"
has
a number of good examples that show the correct behaviour.
fox:outline
extension is not implemented in the current version:
it has been superseded by the new bookmark elements from XSL-FO 1.1.