http://xml.apache.org/http://www.apache.org/http://www.w3.org/

Home

Readme
TODO
Download
Running FOP
Features
Limitations
Examples
Configuration
Fonts
Extensions
SVG

Compiling
Embedding
Testing
Getting involved
Architecture

Bugs
FAQ
Resources
License

Read the Status file
 

The Status file contains the list of features people are working on at the moment. And an outline what steps are next.


Subscribe to the fop discussion list
 

You can subscribe to fop-dev@xml.apache.org by sending an email to fop-dev-subscribe@xml.apache.org

Sending bug reports and feature requests to the list is a welcome and important contribution to developing Fop.

Read also the archive of the discussion list fop-dev to get an idea of the issues being discussed.


Look at the developer's code using cvs
 

Between releases the newest code can be accessed via cvs. To do this you need to install a cvs client on your computer, if it is not already there. An explanation how to connect to the Fop source repository can be found at http://xml.apache.org/cvs.html. An introduction into cvs and the cvs manual can be found in the reference library.

All changes to the code repository are annonced in a special discussion group. You can subscribe to fop-cvs@xml.apache.org by sending an email to fop-cvs-subscribe@xml.apache.org. If you want to contribute to the development of Fop you should subscribe, because it is important that you follow changes being made.


Contributing code, tests and documentation
 

If you want to contribute code (p.e. a bugfix), a test or documentation (p.e. an additional example), please do the following:

1) Make sure your code doesn't break the existing one and that Fop still compiles.

2) Create a file which shows the differences to the existing code.

3) Send this file to fop-dev@xml.apache.org.

One of the committers will test your code and commit it to the code repository.

If you have a test or useful bug test you should read this page.

BTW: The Apache project knows different roles for contributors, namely 'users', 'developers', 'committers' and the 'Project Management Committee' (An explanation of these roles can be found here).


Get familiar with the Fop related standards
 

At the moment Fop is mainly a tool to render XSL:FO files to pdf. Therefore if you want to contribute to Fop you should become familiar with these standards. You can find their internet addresses on our website.


Fop's architecture
 

A bird's eye view on the way Fop operates can be found in the document FOP Mechanics

If you want to extend the functionality of FOP by adding new formatting objects, you should do the following:

1. FO Object: Write a class which contains the description of your formatting object and put it into the package fop.fo.flow, fop.fo.pagination (if it is a property it goes to fop.fo.properties. The classes in this package are generated via an xslt stylesheet located in codegen/properties.xml)

2. Element Mapping: Add it to the list in fop.fo.StandardElementMapping (if it is a property you need to add it to fop.fo.PropertyListBuilder)

3. Area: Either your need can be fulfilled within one of the existing classes in fop.layout, then just add the code to handle the new fo/property or you must write a new one.

4. Renderer: Choose the renderer you are interested in. If you worked on an existing layout class you must add code to handle the new features to the already existing area specific method in the renderer class. Otherwise you have to add a new method.



Copyright © 1999-2001 The Apache Software Foundation. All Rights Reserved.