Apache FOP is a print formatter driven by XSL formatting objects. It is a Java application that reads a formatting object tree conforming to the XSL 1.1 Recommendation (05 December 2006) and then turns it into a PDF document, certain other output formats or allows you to preview it directly on screen. Note that not all parts of the XSL 1.1 specification have yet been implemented.