Apache(tm) FOP - a print formatter driven by XSL formatting objects (XSL-FO) and an output independent formatter.
Apache™ FOP
FOP Home
Quick Start Guide
Compliance
Getting Help
FAQs
FOP Wiki
Mailing Lists
License
Resources
XSL-FO
Examples
Bugs
Wiki
Other
Project
News
Who We Are
Status
Known Issues
Changes
Versions
FOP Trunk (dev)
Overview
Upgrading
Using Apache™ FOP
Build
Configure
Run
Embed
Servlets
Ant Task
Config Options
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.11
FOP 2.11 Overview
Release Notes
Changes (2.11)
Upgrading
Using Apache FOP 2.11
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.x
FOP 2.10
FOP 2.10 Overview
Release Notes
Changes (2.10)
Upgrading
Using Apache FOP 2.10
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.9
FOP 2.9 Overview
Release Notes
Changes (2.9)
Upgrading
Using Apache FOP 2.9
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.8
FOP 2.8 Overview
Release Notes
Changes (2.8)
Upgrading
Using Apache FOP 2.8
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.7
FOP 2.7 Overview
Release Notes
Changes (2.7)
Upgrading
Using Apache FOP 2.7
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.6
FOP 2.6 Overview
Release Notes
Changes (2.6)
Known Issues
Upgrading
Using Apache FOP 2.6
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.5
FOP 2.5 Overview
Release Notes
Changes (2.5)
Known Issues
Upgrading
Using Apache FOP 2.5
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.4
FOP 2.4 Overview
Release Notes
Changes (2.4)
Known Issues
Upgrading
Using Apache FOP 2.4
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.3
FOP 2.3 Overview
Release Notes
Changes (2.3)
Known Issues
Upgrading
Using Apache FOP 2.3
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.2
FOP 2.2 Overview
Release Notes
Changes (2.2)
Known Issues
Upgrading
Using Apache FOP 2.2
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.1
FOP 2.1 Overview
Release Notes
Changes (2.1)
Known Issues
Upgrading
Using Apache FOP 2.1
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 2.0
FOP 2.0 Overview
Release Notes
Changes (2.0)
Known Issues
Upgrading
Using Apache FOP 2.0
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
PDF Images
Whitespace Management
FOP 1.1
FOP 1.1 Overview
Release Notes
Changes (1.1)
Known Issues
Upgrading
Using Apache FOP 1.1
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Complex Scripts
Events
Extensions
Fonts
Graphics
Hyphenation
Intermediate Format
Metadata
Output Targets
PDF/A
PDF/X
PDF Encryption
FOP 1.0
FOP 1.0 Overview
Release Notes
Changes (1.0)
Known Issues
Upgrading
Using Apache FOP 1.0
Build
Configure
Run
Embed
Servlets
Ant Task
Features
Output Targets
Intermediate Format
PDF Encryption
PDF/A
PDF/X
Graphics
Fonts
Hyphenation
Extensions
Events
Metadata
FOP Development
General Information
Testing
Developer Tools
SVG Issues
Release Process
Coding Conventions
FAQ
Adding an Extension
Managing Documentation
RTFLib (jfor)
Implementation Overview
Unresolved (Wiki)
Design
Design Info
Input Parsing
Images
PDF Library
Layout Managers
FO Tree
SVG
Area Tree
Optimisations
User Agent
Renderers
Extensions
Embedding FOP in Other Applications
Startup, Environment, Control
Properties
Layout
Apache™ XML Graphics
Project Overview
Who We Are
Legal Stuff
Project Charter
Mailing Lists
Code Repositories
ASF Sponsorship Program
ASF Thanks
Licenses
Apache XML Graphics Security
ASF Security
Sub Projects
Apache Batik
Apache XML Graphics Commons
Search Apache XML Graphics
ApacheCon N. America
ApacheCon NA
Hope to see you there!
ApacheCon Europe
ApacheCon Europe
Hope to see you there!
Support the Apache Software Foundation
The Apache™ FOP Project
Apache™ FOP
Introduction
Apache™ FOP (Formatting Objects Processor) is a print formatter driven by XSL formatting objects (XSL-FO) and an output independent formatter. It is a Java application that reads a formatting object (FO) tree and renders the resulting pages to a specified output.
Output formats
currently supported include PDF, PS, PCL, AFP, XML (area tree representation), Print, AWT and PNG, and to a lesser extent, RTF and TXT. The primary output target is PDF.
The Apache™ FOP project is part of the
Apache™
Software Foundation, which is a wider community of users and developers of open source projects.
The latest version of FOP is available at
FOP 2.11
Support for each of the standard's objects and properties is detailed in
FOP Compliance
options include a precompiled version, source code, and many example files to get you started.
Resources
include links to XSL-FO introductions and many other useful references. A checklist for
Getting Help
will guide you toward maximizing the usefulness of FOP.
FOP is proud to be part of
Apache's XML Graphics project
Demonstration
This image is a demonstration of a real two page document. The XML data on the left is formatted into the two pages on the right. The document contains static areas that appear on every page, an external graphic, a footnote on the first page, and a table that goes across both pages.
FOP uses the standard XSL-FO file format as input, lays the content out into pages, then renders it to the requested output. One great advantage of using XSL-FO as input is that XSL-FO is itself an XML file, which means that it can be conveniently created from a variety of sources. The most common method is to convert semantic XML to XSL-FO, using an XSLT transformation.
FOP Objectives
The goals of the Apache FOP project are to deliver an XSL-FO to PDF formatter that is compliant to at least the Basic conformance level described in the W3C Recommendation from 05 December 2006, and that complies with the November 2001 Portable Document Format Specification (Version 1.4) from Adobe Systems.
Conformance to the XML 1.0 and 1.1 Recommendations, XSLT 1.0 and 2.0 Recommendations and the XML Namespaces Recommendation is understood. Other relevant documents, such as the XPath and XLink Working Drafts, are referenced as necessary. The FOP Project will attempt to use the latest version of evolving specifications.
Copyright © 2025 The Apache Software Foundation, Licensed under
the
Apache License, Version 2.0
Apache, Apache XML Graphics, Apache FOP, Apache Batik, the Apache logo, and the
Apache XML Graphics logos are trademarks of
The Apache
Software Foundation
. All other marks mentioned may be trademarks or registered
trademarks of their respective owners.