Skip to main content

Document Composer



The DocumentComposer class, which is available in both Java and Windows-only versions (including 32- and 64-bit versions), is used to transform MathML embedded in documents into additional information (e.g., spoken speech for the equation in the Windows Composer) or replace it with images. It can produce EPS (Windows only), GIF, and PNG image types.

Programming Model

The DocumentComposer class is based on a state model. When a DocumentComposer object is instantiated, an internal collection of parameters is initialized. These parameters control licensing, input, output, rendering, font management, persistence and other functions. These internal parameters are modifiable by setter methods, which allow you to change the value of the parameters before an image is generated. Refer to the Java Document Composer API (in the javadocs) or Windows Document Composer API for the DocumentComposer class to see what setter methods are available.

Processing a Document

Once all of the parameters have been set, a call to ProcessDocument() will transform the MathML and output a new document in the format and location defined by the parameters.

Configuring Fonts

You can choose which fonts are used when creating equation images. To do this, you need to create font configuration files. See Windows Font Configuration or Java Rendering Engine for more information.

Using the API in your program

Follow the general steps below to use the Document Composer in your program.

Setting the License

Before a document can be processed, a valid MathFlow SDK license for the Document Composer must be supplied to the DocumentComposer class (note that this is available in 32- and 64-bit versions for Windows). This is accomplished by using the SetLicense method and passing in either the path and file name of a FlexNet license or the license string for a Design Science key.

Specifying the Input

To pass the input document to be processed into the Document Composer, use the SetInputDoc method, which sets the path to the source document.

Defining the Output

The methods that define where the output document and equation images will generated and what tags and attributes will be generated are:

  • SetOutputDoc

  • SetOutputType

  • SetAltText (Windows only)

  • SetFontMetrics

  • SetImageName

  • SetImageType

  • SetImageFolder

Setting Rendering Options

The methods that determine how the equations will be rendered are:

  • SetPointSize

  • SetDPI

  • SetForeground

  • SetBackground

  • SetBreakWidth (Java only)

  • SetPadding (Java only)

Using Fonts


Use this method to select which font mapping file is used (see Java Rendering Engine for more information):

  • SetFontMapping


Use these methods to select which fonts are used (see Windows Font Configuration for more information):

  • SetFontConfig

  • SetFontInfo

  • SetBaseFont

When the DocumentComposer DLL (note that this is available in 32- and 64-bit versions for Windows) is first loaded, it looks for the font configuration file and the font info file. If either file is present, it is used in the same way as the analogous configuration file passed via the -fontinfo or -fontconfig parameter by the command line component.

Saving Your Options

At any point in your program, you can save the options you have defined using SaveOptions. To load options previously saved, you would use ReadOptions.

Processing a Document

Once the parameters have been set, a document can be processed with the ProcessDocument method.

Getting Additional Information

Use the GetLastMessage method to obtain the latest message string and ClearLastMessage to reset it.

The SetVerbosity method specifies the amount of information that will appear in processing messages. These will be displayed to the console unless they are redirected to a log file with the SetLogFile method.