A flexible and extensible virtual printer architecture is provided. According to one aspect of the present invention, a mechanism is provided for driving multiple heterogeneous presentation devices. A presentation job is received on behalf of a presentation device, the presentation job includes a data stream which contains source data in the form of text, image, graphics, and/or other embedded objects. The source data is then reduced to an intermediate format. Based upon the intermediate format and control information associated with the data stream, device-specific data and device-specific control information are generated for the presentation device. Finally, the presentation device is driven by providing the device-specific data and device-specific control information to the presentation device. According to another aspect of the present invention, a device-independent data stream corresponding to a presentation job is received and transformed into a data stream which may be used to drive a particular presentation device. The device-independent data stream includes data that is formatted according to a widely supported format. The data is converted to a device dependent format. One or more presentation units capable of containing device-specific data and device-specific control information are generated for the presentation device and the presentation device is driven with a natively supported data stream that includes the one or more presentation units.