Google's Summer of Code Project Proposal: Implementing auto table layout
This page is the draft of a project proposal that could be made at Google's Summer of Code. The goal is to gather the key points, the main issues and to sketch a timeline for the project.
The project is to implement the auto table layout in Apache Fop. Other features may be added to the list depending on the time estimates.
Work to be done
- determining ideal column widths based on the inline element lists for the whole table.
- determining if the column widths are to be redetermined for each page (if that's requested). FOP cannot currently do that because it determines page breaks on a number of pages at the same time (total fit algorithm instead of first fit (Knuth terminology)). This would cause extensive changes to the whole layout engine but enable other features that are currently not possible, for example changing available IPD between pages.
- basic implementation of the auto table layout (i.e. single column layout for the whole table, not for individual pages)
- Wiki page describing the general approach to the above.
- extensive changes to the whole layout engine to enable first fit page breaking (in addition to the current total fit page breaking) in order to achieve the following point.
- Auto table layout implementation which recalculates optimum column widths for each page.
- Documentation phase: 4 weeks
- FOP source code
- XSL-FO specification
- Basic auto table layout implementation : 3 weeks
- Extensive changes to the whole layout engine : 7 weeks