Apache FOP
Java XSL-FO formatter that turns XML formatting objects into PDF and print output.
Jobs Convert
Operated by The Apache Software Foundation
Opens the vendor's own site.
Jobs covered
Open a task to see exactly what the vendor documentation supports.
Convert
Browse all convert toolsWhere your files are processed
No server involved
A Java application you run yourself. The formatting objects are read from your own filesystem and the output is written there; the Apache Software Foundation operates no processing service at all. That is a property of the library itself: what an application built with it does with your file depends on that application, not on this.
A Java application you run yourself. The XML and the formatting objects are read from your own filesystem and the output is written to it; the Apache Software Foundation operates no processing service of any kind.
What it does
FOP is the Apache project that formats XSL-FO - the XML vocabulary for describing pages - and renders it to PDF, PostScript, PCL and print streams. It fits a pipeline that already speaks XML: FOP consumes XSL-FO, and XSLT is a common way to produce that input from XML, though an application may supply formatting objects directly or generate them by other means.
It is not an HTML and CSS renderer, which is a different job. It is a Java application, currently on version 2.11, and it is part of Apache's XML Graphics project alongside Batik.
Best for
Publishing and documentation pipelines that are already built on XML and XSLT, where the formatting step should be a standards-based transformation rather than a browser rendering. It is also the choice where output has to go somewhere other than PDF - print streams and AFP are supported, which most of the HTML-to-PDF tools here cannot do.
Worth knowing
XSL-FO is a large, old standard and FOP implements the Basic conformance level plus much of what lies beyond it, not the whole recommendation - the project publishes a compliance page precisely because the gaps need documenting, and a stylesheet that relies on an unimplemented property will render differently rather than fail loudly. It is also not an HTML renderer: there is no CSS support worth speaking of and no JavaScript, so a team arriving with a web template is on the wrong tool, and the pipeline has to go through XSLT to be useful at all.
That makes FOP a good fit for an XML house and a poor one for a modern web team, and the difference is architectural rather than a matter of quality. Its outputs beyond PDF - AFP and PCL particularly - are what make it unusual in this index, and they are also the parts least likely to be exercised by anyone evaluating it casually.
Details, and where each comes from
Vendor statements, our own reading of their pages, and the things nobody has established yet, each answered separately. Where we have not confirmed something it says so rather than guessing, and a row nobody has established is greyed out.
- Versions covered
- Self-hosted
- Website
- xmlgraphics.apache.org
- Requires an account
- Not applicable
- Watermark on the free tier
- Not verified
- Maximum file size
- Not verified
- Batch processing
- Yes
- Data residency
- Self-hosted
- Open source
- Yes
- Self-hostable
- Yes
- Licence
- Apache-2.0
- Redaction
- No redaction feature
- Programmatic access
- Command line · Embeddable library
- Last availability check
- Responded in 187 ms 21 October 2026
Checked automatically by our own runner, not reported by the vendor. 100% of our last 30 checks got a response.
What the redaction verdict rests on
From the vendor's own documentation, read 22 September 2026. Not tested by us.
“Apache™ FOP (Formatting Objects Processor) is a print formatter driven by XSL formatting objects (XSL-FO) and an output independent formatter.”
What that does not establish
Recorded as `none` on absence, and structurally: FOP builds pages from formatting objects and never opens an existing PDF, so there is no document for a redaction feature to operate on. It writes PDF, PS, PCL, AFP and others, but always as new output.
What it does not establish: that a document it produces is safe to share - a formatter renders whatever the data contains, which is the same generator risk this index records for Prince, WeasyPrint and the rest.
What the vendor says
Claims are labelled rather than repeated as fact. Where we have checked something ourselves, it says so and shows when. Checked means we read the vendor's own page and it says what we recorded - not that we tested the behaviour, unless the note says we did.
-
“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.”
Checked by us - the source says this Read 1 October 2026
Confirmed. The quoted text appears in the rendered page as read on 2026-10-01.
This claim was carried as reported rather than checked until this read.
Standing: Not re-read against the live source
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- aaaffe1641a8742205f5897c481f2818be599e8e051183a98327bc8cf16f7152
How we checked
Read as rendered text in headless Chrome on 2026-10-01 and saved to the evidence archive, so the read can be repeated against the same file. Comparison ignores case, punctuation and hyphenation, which is why "open-source" on the record matches "open source" on the page.
-
“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”
Checked by us - the source says this Read 1 October 2026
Confirmed. The quoted text appears in the rendered page as read on 2026-10-01.
This claim was carried as reported rather than checked until this read.
Standing: Not re-read against the live source
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- aaaffe1641a8742205f5897c481f2818be599e8e051183a98327bc8cf16f7152
How we checked
Read as rendered text in headless Chrome on 2026-10-01 and saved to the evidence archive, so the read can be repeated against the same file. Comparison ignores case, punctuation and hyphenation, which is why "open-source" on the record matches "open source" on the page.
Each claim is quoted from the vendor's own pages. This section describes what we have and have not checked - it is not a judgement about anyone.
Sponsorship is distribution, not an endorsement or a promise of search rankings, AI citations, traffic, or sales. This listing is a free entry, compiled from published sources.
Related reading
- Which PDF tools keep your file on your machine - what we count as processing on your own device.
- Open source PDF tools, and what their licences require - what open source does and does not tell you.