Der Formatting Objects Processor (kurz: FOP) ist eine Java-Anwendung der Apache Software Foundation, welches aus XSL-FO-Dokumenten verschiedene Ausgabeformate erstellt.
FOP unterstützt dabei die Ausgabe in den Formaten PDF, AWT, PCL, MIF, PS, RTF, SVG und TXT. Eine sofortige Ausgabe auf einem angeschlossenen Drucker ist ebenfalls möglich.
FOP wird zusammen mit embedded Xalan distribuiert. Eine Schwäche von FOP ist das nichtvorhandensein von interaktiven Formularelementen. Eine Untersuchung wie diese in FOP integriert werden können wurden von Florian Hecht im Rahmen einer Studienarbeit entwickelt. Eine Beispielimplementierung für PDF-Formulare belegt die Durchführbarkeit des Ansatzes.