An output engine operable to convert a file from a first format to a
second format. The output engine includes a decomposer that is called by
a calling application. The decomposer receives an input file and a
desired file format from the calling application. The decomposer
decomposes the input file into a component architecture, making the
properties of objects within the input file available to other components
in the output engine. The output engine also includes a writer that calls
the decomposer multiple times to retrieve the component architecture of
the file and generate a new version of the file in the second format. The
invention also provides a method of delivering a desired file format and
an input file to a decomposer. The input file is decomposed into a
component architecture in the decomposer and a new version of the input
file in the second format is generated by calling the decomposer multiple
times from a writer.