Version History:

! Note, that important changes are marked with !


Latest Build 3.02.***
- RTF to FO converter
! * Line and font height handling has been improved. Please refer to our updated manual and
    remove the default-line-height and line-height attributes in your jfo-config.xml, which 
    have been replaced by font-line-height="auto" and line-height-correction="auto".
  * New: New configuration option "remove-empty-list-items"
  * BugFix: Tables were broken under seldom circumstances


Release 3.01
------------
- API
  * Templates / Blocks are now available in jfo-config.xml (for example used for Inline.Factory.dot()).
  
- RTF to FO converter
  * New: Default tabulator length added to configuration
  * New: Compatibility mode for FOP 1.1
  * BugFix: Better handling for line-height property
  * BugFix: Better property handling for forced symbol bullet
  * BugFix: Numbering is ignored for bullet lists (Word-behavior)
  * BugFix: Title and facing pages properties are copied to new section after a section break
  
- FOP 1.1 included in distribution (FOP1Renderer supports FOP 1.0 and FOP 1.1)
  

Release 3.00.00
---------------
- Common
! * Java Namespace changed from de.northbit to de.vc
! * Name of license file changed from northbit-lic.xml to vc-license.xml (northbit-lic.xml is still supported)
  * JFO is now shipped with FOP 1.0 (previous releases included FOP 0.95)

- RTF to FO converter
  * New: Output formats PDF A-1a, PDF A-1b and PDF/X-3:2003 added and supported by FOP1Renderer
  * New: Option "set-default-font-on-root" in rtf2fo-configuration. If enabled, the default font of the font-mapper
         is set to the fo:root element.
  * BugFix: In some situations the SimpleDataSource class didn't clone results correctly
  * BugFix: Problems with tables of Word 2003 documents fixed.
  * BugFix: When merging a full table into a RTF table, the block-properties inside the table were overwritten
  * BugFix: Marker end of document sometimes missed (for number of pages)
  * BugFix: Correct font-size is applied to block if a field is filled with an empty table cell array (e.g. new TableCell[5])
  

Release 2.07.81
-------------------
 - COMMON / API
!  * JRE 1.5 or later is needed
   * New: Supporting various character sets for XML output
   * BugFix: Cloning of formatting objects
   
 - RTF to FO converter
   * New: ReflectionDataSource added
   * New: Font-mappers have an optional ID to select them directly with Java Code
   * New: ReflectionDataMergeFieldListener (RTF-Import)
   * New: Support for border-styles "Inset" and "Outset" added
   * New: Support for language variants
   * New: Default image directory configurable in jfo-config.xml
   * New: Max. dimension of transcoded bitmap images is configurable
   * New: Many add and set methods return their objects to allow method chaining
   * New: More special controls for symbol characters are recognized (quotation
          marks, dashes and bullets)
   * New: Support for field "COMPARE" 
   * New: Support for formula fields (e.g. {=2*3} )
   * New: Support for INCLUDETEXT with an addressed Bookmark (INCLUDETEXT <file.rtf> <bookmark>)
   * New: Support for track-changes
   * New: Conditional bookmarks in IF fields supported
   * New: The second operand of an if statement may contain wildcards (? for a single char, * for many chars)
   * New: Supporting shading background of characters
   * Change: DataMergeFieldListener is deprecated. Use SimpleDataSource instead.
   * Change: FontMapper moved to package de.northbit.jfo.tools
!  * Change: FOP 0.20.5 replaced with FOP 0.95 (can be replaced with FOP 0.9x and later)
   * Change: strict-footer-header-handling defaults to false
!  * Removed: Experimental support for FEX removed (PDF forms)
   * BugFix: Newline-handling of fields corrected
   * BugFix: IF-conditions in hidden areas supported
   * BugFix: Merge-format only worked for first element in field result
   * BugFix: Position of tables in a shape was wrong
   * BugFix: Character spacing now handeled correctly
   * BugFix: flow-names of static-content wasn't unique sometimes
     when strict-footer-header-handling was disabled
   * BugFix: Date field didn't use correct locale
   * BugFix: In very rare cases the font-size was ignored
   * BugFix: Leading and trailing spaces of bookmarks are not trimmed



Release 2.06.066
----------------------
 - General
!  * Logging framework moved from Apaches Avalon Framework to Apache-Commons.
   * Configuration framework moved from Apaches Avalon Framework to own
     implementation.
   * abstract XSLTRenderer added
   * HTML Renderer added (extends XSLTRenderer), Stylesheet by RenderX
   * ANSI encoded fonts and metrics added for FOP: Webdings, Wingdings 2,
     Wingdings 3
   * Bugfix: Availability of renderer Xinc
   * Basic Support for FOP 0.9x and later

 - RTF to FO converter
   * New: Supporting page borders
   * New: Supporting background patterns in table cells (JDK >= 1.4 needed)
   * New: Support for languages and hyphenation; dates and numbers are formatted
     against RTFs language/locale instead of JVMs default language.
   * New: Charactering transcoding (replacing characters during import)
   * New: Configuration option to fix table-cell-padding bug of Microsoft Word
     (see http://www.theimagingsourceforums.com/showthread.php?threadid=317071)
   * New: Compatibility modes for XEP, IBEX and XSL-Formatter (AXF)
   * New: Line Height optimization
   * New: Optional Hyphens are converter to soft-hyphen character (shy, U+00AD)
     when running in compatibility mode W3C, XEP and XSL Formatter.
   * New: Strict handling of headers and footers can be disabled
   * New: Negative left table margins are suppressed in compatibility mode FOP
     since they produce ugly output.
   * Improved: Performance
   * Improved: Better und customizable estimations of fo:leaders for tabulators
   * Bugfix: In certain circumstances JFO runs into a deadlock when importing
     several documents concurrently
   * Bugfix: if a white-space-treatment="preserve" value was applied to a block
     then in some situations the breaking space was inserted after a linebreak.
     Now a leading paragraph space is transformed to non-breaking-space and
     white-space-treatment attribute is not used any longer.
   * Bugfix: RTF-Controls with numbers before linefeeds were not parsed
     correctly by RTF-Parser
   * Bugfix: Continous section breaks were not handled properly for section
     with multiple columns
   * Bugfix: Footers used wrong margins (headers margin)
   * Bugfix: Super or sub aligned text doesn't disrupt line spacing.
   * Bugfix: Inline images are wrapped in an fo:inline-element (when placing
             images directly in fo:block elements then surrounding text is
             suppressed by some renderers)
   * Bugfix: Some shapes had a background-color although it was disabled
   * Bugfix: Alignment was incorrect in some circumstances after a soft linebreak
   * Bugfix: Table-header rows after normal rows are handled properly now.
             A new XSL-FO table is started if a normal row precedes a header row.
   * Bugfix: \pgnrestart is now handled correctly

 - Report Engine
   * New: FOReport is now public and XSL-FO Document can be modified before
          writing to storage
   * New: FilterStorage added (see example JavaReportSource for usage)



Release 2.05.098
----------------

!- Rename of packages:
       renamed de.dd.*    -> de.northbit.*
       renamed de.dd.fo.* -> de.northbit.jfo.*
       moved   de.dd.rtf  -> de.northbit.util.rtf

 - General
   * Redesign of GUI
   * Formatting of XML output possible
   * Logger changed from LogKit to Logging Abstraction of Avalon Framework (see www.apache.org)
   * license file changed from license.dd (still supported) to northbit-lic.xml

 - Creation of stylesheets from RTF file
   * GUI-Wizard
   * Stylesheet directives inside FILLIN fields

 - Creation of PDF forms from RTF file (only possible with FOP)
   * Support of FORMTEXT, FORMCHECKBOX, FORMDROPDOWN
   * Form directives inside FILLIN fields

 - Renderers
   * Support for XEP by RenderX (Xep4Renderer)
   * Support for Ibex by Visual Programming (Ibex3Renderer)
   * Support for Xinc by Lunasil (XincRenderer)
   * List of available renderers is configurable
   * Renderers have priorities

 - RTF to FO Converter
   * new: paragraph position, borders, background-color with auto text color
   * new: table position
   * new: z-index of shapes
   * new: supporting keep-with-next and keep-together properties for paragraphs,
     bullets and numberings
   * new: compatibility-mode (W3C standard and FOP 0.20.5)
   * new: headers and footers may overflow document's body (so they aren't
     cropped if reserved space is insufficient )
   * new: height of headers and footers can be adjusted (needed height is
     estimated by JFO)
   * new: supporting font-specific charsets: ANSI, Russian, EE, Greek, Turkish,
     Baltic, Hebrew, Arabic, ShiftJIS, HANGEUL, GB2313, ChineseBig5
   * new: Policy for horizontal borders between data rows
   * new: supporting font-stretch
   * new: filling tables redesigned: sibling elements of field are not disposed,
     IF statements inside repeated table rows supported
   * bugfix: Using page-position="any" instead of "rest" for sections after a title page.
   * bugfix: page-breaks, carriage returns, font-properties in fields
   * bugfix: sometimes blank table rows were collapsed
   * bugfix: capitalized text property
   * bugfix: line spacing
   * bugfix: bullets/numberings in field-results
   * bugfix: underline issue
   * bugfix: border bottom properties of table cells and frames
   * bugfix: position, padding & border of shapes & frames are calculated finer
   * removed: depraced FieldProcessor removed
   * FOP-compatibility: font-size of a block is set to maximum of all childreen
   * partially redesigned


Version 2.04.183
----------------
 - RTF to FO converter
!  * Attribute "enable-table-cell-padding" of jfo-config.xml renamed to
!    "use-left-dummy-table-cell" to avoid confusion with padding of a cell.
!  * Attribute "ignore-tabs" of jfo-config.xml renamed to "enable-tabs" (positive logic)
!  * FieldProcessor is deprecated and replaced by FieldListener
   * Top marker is not inserted automatically any longer. This is
     not necessary, because the RTF file has always a bookmark "_top" when
     somewhere the top of a document is referenced / linked.
   * KeywordFieldProcessor can clone elements before inserting it into document.
     Make use of it when inserting data multiple times, especially for full
     documents. (see KeywordFieldProcessor.setCloneValues(boolean))
   * KeywordFieldProcessor has methodes to get registered keywords and values.
   * New fields are supported: IF, INCLUDETEXT
   * Using default encoding (Cp1252) under linux if no encoding was defined in
     RTF file
   * Support for different image treatments
      - external = external file
      - instream = image is encoded in data-url
      - instream-svg = image is an instream SVG
   * Bugfix for shape-insets
   * Hidden text can be processed or skipped
   * Special headers and footers for title and facing pages

 - GUI
   * Saving and loading of full configuration
   * Redesign of preferences panel

 - Report Engine
   * DBDataSource can have global values/selections that are accessable for all reports.

 - XSL-FO Api
   * Bugfixes in Class AbstractNode
   * Class AbstractNode wasn't compatible to JDK < 1.4 in jFO 2.03
   * FOPRenderer extended for reseting FOPs image cache
   * Memory-Safe mode



Version 2.03
------------

 - RTF to FO converter
   * Supports field NUMPAGES. Note that it doesn't work properly if
     document contains section breaks that restart page-numbering, because
     in XSL-FO there is no way to determinate the total number of pages.
   * KeywordFieldProcessor supports now switches
      \b and \f for mergefield
      \d for fillin
   * Overridden properties of lists in list override tables
   * Restart of page numbering and initial page number
   * Field in field is no possible (e.g. {includepicture {fillin path}/image.jpg})
   * Bookmark processing can be disabled or enabled (jfo-config.xml &
     RTF2FOConfig.java)
   * Inserting padding cells for tables with left indent possible (jfo-config.xml &
     RTF2FOConfig.java)
   * Bugfix: in some case an empty page-sequence was inserted at start
   * Bugfix for centered or right aligned tables
   * Bugfix: left indent of tables were sometimes wrong if they were filled with
     multiple rows

 - XSL-FO API
   * Package de.dd.fo.building removed; equal and better classes are available
     in package de.dd.fo.writing

 - Report Engine
!  * Namespace (jfo:) removed from all report related XML-files (XML data source,
!    descriptor file for database source). The report engine is since jfo
!    version 2.0 not longer a real part of jfo, more an abstract framework.
!    That's why we have decided to remove the prefix, this step was neccessary.
!  * Element names and structure of XML-file for database source changed!
!    Removing the namespace was a good opportunity to improve names of elements
!    and structure. The mixed content of the selection tag was split, the
!    SQL statement is now stored in an own tag.



Version 2.02
------------

 - RTF to FO converter
   * Supports now shape-groups, shape-line color, shape-line width,
     shape-background color
     (see shapes.rtf in testsuite directory)
   * Supports continuous, even and odd section breaks. When using continuous
     section breaks multiple columns also allowed.
     (see section_breaks.rtf in testsuite directory)
   + StylesheetFieldProcessor for easy creating stylesheets from rtf files
     (see example CreateStylesheet.java)

 - XSL-FO API
   * Flow.getColumns() returns 1 by default


Version 2.01
------------
 - RTF to FO converter
   * Document can be returned by a FieldProcessor; all elements of all
     page-sequences are inserted

 - XSL-FO API
   * Document.append reassigns IDs and master-names if there are collusions
   * ContentHolder stores its elements in ArrayList instead LinkedList (uses
     less memory)
   * bugfix: Exception when creating PageSequence with PageMaster


Version 2.00 final
------------------

 - RTF to FO converter
   * bugfix: new line after a table was swallowed
   * bugfix: table border was painted on blind tables with merged rows
   * bugfix: regarding font-size in empty table-cells
   * bugfix: Shading color of table cells
   * Space before and space after property set for list items (bullets/numbering)
   * Better support of shapes

 - XSL-FO API
   * IDs are reassigned to appended documents if there are collusions
   * Table property "border-collapse" is set to "collapse" by default
   * Due to problems with JSP Compiler JASPER the singleton of JFOConfig
     is not longer set as system property


Version 2.00 beta
-----------------

Changes
 - Performance of RTF to FO converter improved
 - Partial integration of Apache's Avalon framework
 - Class de.dd.fo.env.Configuration renamed to JFOConfig
   to avoid confusions with class Configuration of Avalon framework
 - Conversion GUI has now a progress bar
 - RTF to FO converter supports now
   * stylesheets
   * (en)dash is recognized (uses Unicode 0x2013)
   * Orphans and widows
   * forcing bullet of font "Symbol" for enumerations
   * bookmarks & internal links
   * page number references
 - PictureConverter renamed to ImageConverter
 - Loading license file from a jar works now with Java Web Start


Version 2.00 alpha
------------------

There are some major changes since Version 1.09:
 - New package structure (flow and pagination elements where
   separated)
 - RTF to XSL-FO converter was redesigned for better performance & scalability
 - Better integration of renderers (especially Apache's FOP)
 - Report engine is now XSL-FO independend and has a XSL-FO specific report builder
 - Reduction of memory usage
 - new graphical user interface
 - Command line options for PDF and other output formats
 - Improved FlowWriter for generating documents with java code
 - Loggers for different jFO modules merged together to one logger (LogKit)
 - SAX event output for FO document (or other nodes)
 - HTML to XSL-FO converter removed (temporary?)
 - most deprecated methodes removed



Version 1.09b
-------------

BugFixes:
 - 4 bytes unicodes are handled
 - NPE fixed (occured if first element of flow was a shape)
 - table cell background color fixed
 - merging table cells fixed


Version 1.09
------------

New jFO core:
 - license file is configurable in jfo-config.xml & Configuration-class

New RTF-module
 - basic support of Word 6.0 / Word 95 numberings and bullets
 - watermarks & absolute positioned shapes
 - default bullet-symbol can be forced (see jfo-config.xml & Configuration-class)

BugFixes RTF-module
 - RTF ANSI-Codepage is recognized
 - unicodes are handled properly



Version 1.08
------------

New RTF-module
 - support of all images (Vector graphics [EMF, WMF] need external batch converter)
 - numberings are stored in fo:list-block
 - background color & shading, but no pattern
 - padding of table cells

New jFO core
 - swapping elements of flow to disc (reduces memory usage)
 - configuration file "jfo-config.xml"

BugFixes RTF-module
 - numbering didn't work properly
 - empty lines in a table cell were sometimes swallowed



Version 1.07
------------

New RTF-module:
 - considers height and property "keep-together" of table rows

New Report-module:
 - SwingTableModel & SwingTableDataSource

Changes:
 - reduction of memory consumption of FOs

BugFixes Report-module:
 - NullPointerException is not thrown, if connect to database failed


Version 1.06
------------

New:
 - Report module for producing many reports on fly

New RTF-module:
 - Scaling _embedded_ (not referenced) images is supported
 - Vertical merging of table cells

Changes:
 - Overworked logging
 - FOGenerator deprecated and replaced through RTFImporter
 - Image names are always created using CRC of image, running number is senseless.
 - Import interface becomes abstract class

BugFixes RTF module:
 - Footer has bottom alignment (note that FOP 0.20.4 doesn't support it)



Version 1.05
------------

New:
 - FontMapper accepts regular expressions now
 - FontMapping information can be stored into XML and loaded from xml.
 - Graphical user interface supports font-mapping

Changes:
 - FontMapper was moved from de.dd.fo.rtf to de.dd.fo for common use.

BugFixes RTF import:
 - Changing font doesn't reset font-size to 12pt any longer
 - Text of hyperlink is displayed correctly (not the hyperlink itself)
 - Size of footers and headers fixed.



Version 1.04
-------------

New:
 - Horizontal alignment of tables supported
 - Basic HTML-import. No support currently, only for testing.
 - A small graphical user interface for converting and merging.

Changes:
 - FontMapper for RTF-Import has no default font after initialization.
 - WriterStyle renamed to StyleSet.
 - Formatting properties can be applied via FormattingDataProvider
   to data of DataProvider. SimpleDataProvider doesn't apply these
   properties any longer.

Bugfixes:
 - Some fontnames wheren't extracted correctly during RTF-import.
 - start-indent & end-indent can be a method.



Version 1.03b
-------------

Bugfixes RTF import:
 - Some words were "swallowed" after a hyphen
 - Bugfix in Fontmapper



Version 1.03
------------

New:
 - XML Import to FO
 - Merge 2 FOs (Java API & Batch)
 - More fields are supported

Major changes:
 - class FormattingObject is an interface

Bugfixes RTF import:
 - Filename of images are now URLs, so it works with XEP.
 - Empty TableCells hadn't any content. Now they have an empty Block.
 - Linked (not embedded) images are supported
 - Vertical alignment of table-cell content



Version 1.02
------------

New:
 - Table-Templates in RTF
 - XSL Output
 - A FlowWriter
 - some useful methods :o)

Major changes:
 - de.dd.xml.Node : getContent() replaced through getElements()

Bugfixes FO-Api:
 - SimplePageMaster: Order of elements (body, regionBefore....) corrected

Bugfixes RTF import:
 - Leading space at start of paragraph
 - Pagebreak at end of paragraph
 - Empty lines at start of table-cells
 - "Soft" line breaks
