FOP Version History

Version 0.11.0 (1999-10-11): Major code changes. The way in which the formatting object tree creates the area tree has radically changed to allow much easier support for keeps, etc in the future. Numerous bugs were introduced (hence the delay in release) but even more fixed. In particular, line breaks work within inline-sequences now. FOP now uses namespaces. The prefix "fo" is no longer hard-coded. This version supports all of the Latin-1 characters now as well as some others available in PDF. Font metrics and character encoding mappings are specified in XML at compile time. Thanks to Fotis Jannidis for doing the conversion to XML for me. Basic display-graphic support is now in, but I consider it unusable at present.

Version 0.10.0 (1999-09-16): Very simple support for a tiny bit of SVG. break-before and break-after implemented. Justification bug fixed. text-indent implemented. font-weight as number implemented. line-height as number implemented. Java source for properties now generated from XML document via XSLT. Added support for emdash, copyright, non-breaking-space and section Detects inline-sequence directly under flow. Display rules can go in blocks. List item labels now obey start-indent. Page breaks mid-list now (appear to) work.

Version 0.9.1 (1999-08-02): Fixed bugs: text-align-last is now computed from text-align when not explicit. display-sequence no longer causes a fatal error when it contains whitespace. inline-sequence no longer "spills" font properties to the entire line when a line break occurs mid-sequence.

Version 0.9.0 (1999-07-30): Basic support for display-rule formatting object. color property. wrap-option property. white-space-treatment property. Also fixed bug that resulted in default encoding for locale being used instead of encoding of input file.

Version 0.8.3 (1999-07-28): Lots of internal layout code changes. The actual glyph-height of a font is used and lists within lists now work. Corrected text-align(-last) properties to take "justified" rather than "justify".

Version 0.8.2 (1999-07-18): Fixed bugs that stopped embedding running of XT for files with DTD. The bullet • now works. Escaped \ in PDF. Now understands font-family "Helvetica" "Times" and "Courier" in addition to generic names.

Version 0.8.1 (1999-07-17): If unknown metric for a particular character, assumes with of "N". Page breaks between blocks within blocks produce the right number of block areas on the new page. PDF more heavily commented for testing purposes. Version class implemented for consistency within Cocoon. Null display spaces not represented in PDF. Made XML output of areas/spaces pretty-printed. Removed some old XML output code that wasn't used. Fixed bug where half-leading display spaces were put in for block areas with no lines. Fixed bug that labels take up block-progression space in addition to body. If first word in line won't fit, it now overruns rather than goes into infinite loop (code for truncation in there too, but currently commented out). provisional-distance-between-starts and provisional-label-separation are now actually used for lists.

Version 0.8.0 (1999-07-04): Basic support for lists added. Blocks without direct text no longer produce line areas. Space before/after no longer inherited. Area containers positioned with Tm not Td. Line areas take up space according to height of area, not fontsize

Version 0.7.2 (1999-06-29): Unknown font-triplet treated as "any". Reports error if text is outside a block area. XML output of areas/spaces now an implementation of Layout (just like PDF output). Layout code cleaned up with layoutChildren() method.

Version 0.7.1 (1999-06-23): Added support for fo:display-sequence and fo:inline-sequence.

Version 0.7.0 (1999-06-22): Added a new mainline class XTCommandLine that enables straight XML+XSL to PDF (using XT which must be downloaded separately) without having to run an XSLT engine and save the formatting object tree as a separate step. Now handles multiple page sequences. Separated out the PDF-specific code that was within the area/space classes. This makes FOP more modular and will enable alternative output formats in the future

Version 0.6.3 (1999-06-09): Alters the way areas are handled to allow for block areas to contain other block areas and hence blocks to contain blocks

Version 0.6.2 (1999-06-01): Has some clean up in the way formatting objects and properties are handled. The only real functional difference is that property inheritance is back.

Version 0.6.1 (1999-05-24): No functional difference from 0.6.0 as far as the XSL side of things. Rather, the way FOP is invoked has changed. It is now possible to (1) pass FOP a DOM Document rather than a filename. This makes it possible to embed FOP in other applications (such as XSLT engines and web servers); (2) Use any SAX parser, not just XP as before

Version 0.6.0 (1999-05-05): A complete re-write in light of the most recent XSL working draft. It only implements a fraction of the formatting objects and properties but the overall framework is now there and it should be relatively easy to add more support (assuming the XSL working draft doesn't change too radically). Differences from 0.5.1 include page-breaking, support for multiple page masters, support for region-before and region-after, minimal support for page numbering, first attempt at text justification (although needs a lot of work), underlying layout model (areas and spaces) follows new working draft, slightly better error handling

From here on, it probably doesn't make much sense as I completely rewrote most of the code.

Version 0.5.1 (1998-11-04): Added debugging output. Introduced notion of HBoxList and VBoxList. Most of ship_current_hbox_list moved to HBoxList. Most of make_hbox_list moved to HBoxList.

Version 0.5.0 (1998-11-02): Ship hbox list now builds a Vector of strings until a linebreak is needed and only then output the line, prepending a move command to achieve right and center text alignment

Version 0.4.6 (1999-11-02): Fixed bug in use of SAX that prevented JDK1.1 use. Move now creates a PDF_COMMAND hbox rather than writing direct to stream chardata now only makes hbox_list. rest is done by ship_current_hbox_list

Version 0.4.5 (1999-10-31): Moved hbox_list building code to separate method indent-end now supported

Version 0.4.3 (1999-10-31): Moved formatting objects to own package. fixed visibility issues arising. added support for ListItemLabel and Score factories

Version 0.4.2 (1999-10-31): Better error handling. Fatal errors actually cause exit. Legal but unimplemented FOs are treated as default FObjs

Version 0.4.1 (1999-10-30): Correct reporting of IOException. Handles unknown FOs as a reported fatal error (rather than throwing null pointer exception)

Version 0.4.0 (1998-10-30): First Java version. Loss of some functionality such as page breaking

Version 0.3.1: Last python version

Version 0.1.2: FOT read using SAX

Version 0.1.0: first Python version (initial PDF engine prototyped in Perl)

James Tauber / jtauber@jtauber.com
Last updated: 1999-10-11