FOray

SourceForge.net Logo

FOray Users
Module Users
Developers
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

FOray: Module Documentation

Introduction

Because of its modular design, FOray can be thought of as a set of open-source modules useful for developers who write document processing applications. Although FOray’s reference application is an XSL-FO application, many of FOray’s components are independent of that standard, and can be successfully used in other document processing schemes.

The purpose of this page is to briefly describe the FOray modules and the dependencies between them.

aXSL

FOray has adopted the aXSL (API for XSL) view of document processing. In a nutshell, this philosophy views document processing not as a monolithic task, but as a set of discrete modules with well-defined interfaces between them. This means that very few FOray modules have dependencies on other FOray modules. Instead, they depend on aXSL interfaces, the implementations of which may or may not be other FOray modules. This modular design not only makes improving one module a simpler, cleaner, and less-risky task, but also allows developers to mix-and-match the "best-of-breed" modules that may be available.

Summary of Modules

The following table lists each FOray module:

Module Name Repository module Description Dependencies
Universal modules (needed by all others)
libraries lib Pre-compiled jars for Logging, Apache Xalan, aXSL, etc. None.
FOrayCommon foray-common Low-level utilities that contain features used by, or potentially used by, more than one FOray module. These tend to be things that we wish were part of the Java distribution. Libraries.
Standalone Modules
FOrayPS foray-ps Classes for parsing/interpreting PostScript files as input. Universals.
FOrayPretty foray-pretty Classes for pretty-printing XML output. Universals.
FOrayFont foray-font An axslFont-compliant module for handling fonts. Universals, FOrayPS (to parse Type1 fonts), FOrayPretty.
FOrayHyphen foray-hyphen Hyphenates words in various languages. Universals.
FOrayGraphic foray-graphic An axslGraphic-compliant module for handling graphics, both bitmapped images and vector drawings. Universals
FOraySpeech foray-speech An axslSpeech-compliant module integrating document processing with speech processing. Universals
FOrayText foray-text Handles line-breaking chores. Universals.
FOrayPDF foray-pdf Classes for building a PDF file from scratch. Universals, FOrayPS.
FOrayMIF foray-mif Classes for building a MIF file (Adobe FrameMaker) from scratch. Universals.
Document Processing Modules
FOrayFOTree foray-fotree Classes for parsing an XSL-FO file and making its contents available. Universals.
FOrayAreaTree foray-areatree Classes representing a formatted document. Universals.
FOrayOutput foray-output Classes that convert an FOTree into an output document. This is useful for output formats like MIF and RTF that do their own layout. Universals, FOrayMIF.
FOrayRender foray-render Classes that convert an AreaTree into an output document. This is useful for output formats that require layout to be done for them. Universals, FOrayOutput, FOrayPS.
Layout Systems
FOrayLayout foray-layout Abstractions useful for any layout system. Universals.
FOrayPioneer foray-pioneer The original open-source XSL-FO layout system. It is “eager” and therefore not very sophisticated. Universals, FOrayLayout.
Applications
FOrayCore foray-core XSL-FO processing application, using any set of aXSL components. Universals.
FOray foray-app XSL-FO processing application, using FOray modules. Universals, FOrayGraphic, FOrayFont, FOrayHyphen, FOrayText, FOrayPDF, FOrayFOTree, FOrayAreaTree, FOrayLayout, FOrayPioneer, FOrayOutput, FOrayRenderer, FOrayCore.

Building a Module

Although each FOray module has its own build script, the preferred way to build FOray modules is to use the main build script, which can intelligently build any subset of FOray that is needed. See Building a Subset of FOray for details.