JFO Features

RTF to XSL-FO processor

  • Text formatting properties
    • Size and fontname, including font name substitution and character transcoding (Font-Mapper)
    • Styles: normal, bold, italic, underline
    • Foreground, background and auto-colors
    • Font-Stretching
    • Sub- and Subscripting
  • Paragraph formatting properties
    • Idents: left, right and hanging (first line left)
    • Alignments: left, right, center, justify
    • Line-spacing
    • Space before and after
    • Paragraph border and backgrounds
    • Keeps, orphans and widows
  • Pagination
    • Page settings: height, width, margins
    • Page borders
    • Page breaks
    • Section breaks, incl. contnuous section breaks
    • Multiple columns per page
    • Headers and footers, incl. title and facing pages
    • Footnotes
  • Tables
    • Border properties: width, color and style
    • not all RTF styles are supported by XSL-FO
    • Vertical and horizontal alignment
    • Padding
    • Background color and patterns
    • Background patterns are converted to background images.
    • Row and column spanning
    • Fixed row height
    • Nested tables
    • Positioned tables
  • Shapes
    • Textboxes (RTF shape type 202)
    • Pictureframe (RTF shape type 75)
    • Rectangle (RTF shape type 1)
    • Absolute and relative position
    • Shape groups
    • Shape borders
    • Z-Index
  • Images
    • Inline images
    • Image-frames
    • Suporting all RTF image formats: JPG, PNG, EMF and WMF
    • when inserting other formats they are converted to PNG or WMF by Word
    • Image treatments: File, BASE64 encoded (instream), nested SVG
    • When using BASE64 or SVG images are included directly in the XSL-FO output but not in an external file. Both methods are using the URL scheme "data" as defined in RFC 2397 for encoding.
    • Image transcoding
    • converting EMF/WMF into renderer friendly format
    • Watermark / background image for document
  • Fields and Data-Merge
    • Handled fields: if, section, page, pageref, includepicture, docvariable, docproperty, data, hyperlink, title, author, comment
    • Formatting patterns for dates and numbers
    • Mail-merge with external data (fillin, mergefield)
    • Loops for table rows and lists
    • Conditioned data merging with if fields
  • Bullets and Numberings
    • Bullets with any character
    • Auto numberings (arabic, roman and letters)
    • Limitition: Older RTF control words of Word 6 and Word 95 for bullets and numberings are not handle
  • XSL-FO output Compatibility
    • Font substitution
    • Character replacement (e.g. for symbols)
    • Line height optimization
    • XSL-FO compatibility modes for
      • W3C (XSL-FO standard)
      • FOP 0.20.5, 1.0, 1.1,
      • XEP 4.4
      • XSL-Formatter 3
      • IBEX 3
  • Compatibility RTF input
    • Fix for Microsofts Word padding bug in table cells
    • Strict handling of headers and footers can be disabled
  • Other Features
    • Language and hyphenation support
    • Hidden text
    • Bookmarks
    • Internal and external links
  • Limititions
    • Limited support for tabulators (tabulators are not supported by the XSL-FO)
    • Track changes are not handled

XSL-FO API

  • Simple Java API for creating XSL-FO documents
  • API is not based on a W3C DOM implementation like Xerces.
  • Pretty formatted XML output
  • SAX event output
  • Includes the PDF/Postscript renderer FOP (Apache)
  • Open source XSL-FO renderer supporting many output formats (e.g. PDF, Postscript, AWT, Printer)
  • Supports various commercial XSL-FO renderers: XEP, XSL-Formatter, Ibex, Xinc
  • Easy integration for further renderers
  • Includes HTML renderer (uses a stylesheet from RenderX)
  • Simple flow writer that speeds up generating documents with Java

Report engine

  • Mail-merge with RTF templates
  • Various data sources: XML, CSV, JDBC or Java-classes