See also FOPProjectPages.
This page contains high-level tasks for Apache FOP. If you like to help with the development, look here for ideas what to implement and notify fop-dev' when you're starting with such a task.
(see also FOPWorkEstimates)
General
Answer questions on the fop-users mailing list.
Documentation
Improve documentation on FOP Trunk.
Testing
Create additional layout engine test cases (see HowToCreateLayoutEngineTests). (in progress - as of Aug 31 there are nearly 200 tests in the repository) Create a test subsystem that allows the generated PDF, PS and Java2D/AWT output to be converted to a bitmap so it can be compared to reference bitmaps. (in progress)
Interfaces and frontends
(nothing here ATM)
AWT Viewer
continue cleanup and improvements
develop towards design with area tree/caching etc.
RTF Integration
JFOR has been integrated into FOP. Now the whole RTF support needs to be stabilized.
Check text-decoration (it was disabled after a change in property handling for text-decoration)
Improve property evaluation. No percentages, yet and "auto" values cause warnings.
Better support for nested tables
Problems with tables in static-content (messes up the document in Word)
Fonts
Add support for font-variant. Limited support of this was available in 0.20.5.
Support font-family lists to make life easier for our users. (should be resolved as part of the FOray integration)
Add some sort of font substitution mechanism (becomes necessary with auto-detection)
(see also FOPFontSubsystemDesign)
FO Tree
Remove FONode.getLogger() and make "log" protected instead.
Allow region-before before region-body (with strict validation turned off)
Better handling of the difference of strict and relaxed validation
Add warning messages for misplaced non-inheritable properties during validation.
Layout managers
Detailed documentation of layout system and overconstraint resolution
(see also FOPWorkEstimates)
Layout of
block-containers
absolute-position has been clarified in XSL 1.1. Our current implementation does not comply to the wording there. See also
the discussion on the list about that.
multi-column documents
mostly done, there's an open problem with Footnotes, See MultiColumnLayout
tables
column creation when not defined
background painting is incomplete, i.e. table-column and table-row
column groups not supported, yet
collapsing border model (in progress)
Reimplement table-and-caption and table-caption
support for table markers!
footnotes/before floats
space resolution in footnotes
add proprietary option that doesn't span a footnote over all columns of a multi-column document
fix the problem with footnote handling in multi-column documents
keeps
remaining issues with keep-with-previous (see keep-with-previous2-5)
support for keep.within-line on fo:inline (partially done)
support numeric values for keeps. Numerics would have a less favourable break than elements without keeps, but allow breaks which "always" does not. As a first phase this could be implemented as different numeric values would have no extra meaning, i.e. a value of 1 is just as likely to cause a break as 1000. (in progress)
side floats
layout with nearest reference area
break/keep implications
adding to areas
handling of differring available IPD over multiple pages (Example: page 1 portrait, page 2 landscape)
fix alignment of page-number-citations.
graphics
tests for e-g and i-f-o (look at line-stacking-strategy and place of images in a line)
Inline areas
ipd adjustment after page number resolution
min/opt/max support for line-height, especially concerning space-resolution (space-before, space-after)
support for inline-container
Adding Areas
must be able to adjust spacing (works in many places but not on tables, for example).
add id/markers (some remaining problems when content is broken over multiple pages)
ID has no affect on some elements, e.g. fo:table-row, i.e. such elements can't be referenced from a page-number-citation.
Area Tree
Writing mode, stacking direction and orientation, width/height vs. ipb/bpd. (See FOPWritingModesAndBidiDesign).
Extend the intermediate format to support imposition ("two-up" etc.)
Add a new renderer which has output similar to Area Tree XML, but which is less verbose therefore improving performance. This will also require changing each renderer to be able to render from this new XML. (Intermediate Format Redesign, see AreaTreeIntermediateXml)
Renderers
Check that the current renderer design is suitable and covers all areas in all situations.
Especially make sure the clipping can be done in a way that is supported by all renderers
Avoid type casting where possible.
Can different orientation and stacking directions be handled? Should document extensions have an extension handler so that user defined extension can be handled?
Bring back all the other renderers: SVG, MIF
Possible new renderers: Mars & SVG Print (relatively easy once SVG output is restored), XPS
Possible new FO event handlers: ODF (Open Document Format)
Revisit the way absolutely positioned areas are rendered. The break-out mechanism can probably be avoid by taking the area out of the normal flow. Maybe look at z-index at the same time.
PDF Renderer
pdf state (still some improvements necessary)
stacking directions
Support for SVG fonts to be converted for PDF into Type 3 fonts (?)
Support for tagged PDF
PDF/X-3:2003 support: Fix for transparency and patterns in SVG support
PDF Library
separate into a stand-alone library (remove Commons Logging dependency)
documentation
optimisations
some additions so it can load and read pdf documents (investigate switching to PDFBox)
maybe add possibility to generate PDF 1.3 only (must be configurable)
encryption (partly done, needs fixing, add support for PDF 1.4 level encryption)
Improve building of PDF dictionaries (also needed to properly finish PDF encryption for string and text entries) (in progress)
possible addition: Support of one or more of the PDF/X standards. See
http://www.pdfx.info. Big question is which one(s)? We already have PDF/X-3:2003 to a certain degree but it is not the most widely used. possible addition: Support for tagged PDF (necessary for PDF/A-1a support)
Investigate merging with PDFBox
SVG support for PDF
Rendering of SVGs as Form XObjects.
Also see FOPBatikTranscoders.
PostScript renderer
Support for TrueType/multibyte fonts
SVG text painter (basics are there)
Provide level 2 and 3 (make configurable)
Support CMYK colours (in progress).
SVG renderer
What's the status? broken. Could easily be restored using Batik's SVGGraphics2D to begin with.
Java2D/AWT renderer
PreviewDialog only prints bitmaps, not vector graphics
XML renderer
(no issues ATM)
Miscellaneous
Better integration with MathML extension, i.e. FOP needs to do baseline-adjustment in accordance with formula in MathXML (in progress at the JEuclid project).
Bundle JEuclid with FOP once a stable release is published (caveat: JEuclid is using Java 1.5!)
Bundle Barcode4J with FOP when the final 2.0 release is available (Jeremias Märki)
Compatibility with Harmony & GNU Classpath (GCJ, JamVM, Kaffee, IKVM etc.)
.NET integration (using IKVM)
Whitespace Management enhancement, see WhitespaceManagement
SVG
none ATM
Images
min/opt/max support in IPD and BPD for e-g and i-f-o. IPD is easier, BPD adjustment requires feedback from page breaking.
Cleanup
There are several classes and variables left after refactorings that can probably be cleaned up. Here's a list of things that were found so far:
layoutmgr.SpaceSpecifier (will probably be done differently in the future)
traits.BlockProps
traits.InlineProps
TextLayoutManager.halfWS and .iNbSpacesPending