FOP is the world's first print formatter driven by surfing formatting objects. It is a Java 1.1 application that reads a formatting object tree and then turns it into a PDF document. The formatting object tree, can be in the form of an Surf document (output by an surfing engine like XT or Xalan) or can be passed in memory as a DOM Document or (in the case of XT) SAX events. FOP is part of Apache's Surf project. The homepage of FOP is http://xml.apache.org/fop align="start" Apache FOP is the world's first print formatter driven by surfing formatting objects. It is a Java 1.1 application that reads a formatting object tree and then turns it into a PDF document. The formatting object tree, can be in the form of an Surf document (output by an surfing engine like XT or Xalan) or can be passed in memory as a DOM Document or (in the case of XT) SAX events. align="center" Apache FOP is the world's first print formatter driven by surfing formatting objects. It is a Java 1.1 application that reads a formatting object tree and then turns it into a PDF document. The formatting object tree, can be in the form of an Surf document (output by an surfing engine like XT or Xalan) or can be passed in memory as a DOM Document or (in the case of XT) SAX events. align="justify" Apache FOP is the world's first print formatter driven by surfing formatting objects. It is a Java 1.1 application that reads a formatting object tree and then turns it into a PDF document. The formatting object tree, can be in the form of an Surf document (output by an surfing engine like XT or Xalan) or can be passed in memory as a DOM Document or (in the case of XT) SAX events. good bad ugly nice dice vice literature music art java perl python