User-friendly creation of EPS, PostScript, and PDF files.
This module provides efficient functions for rendering vector graphics to a number of formats, including EPS, PostScript, and PDF. It provides an abstraction for multi-page documents, as well as a set of graphics primitives for page descriptions.
The graphics model is similar to that of the PostScript and PDF languages, but we only implement a subset of their functionality. Care has been taken that graphics rendering is done efficiently and as lazily as possible; documents are rendered "on the fly", without the need to store the whole document in memory.
The provided document description model consists of two separate layers of abstraction:
drawing is concerned with placing marks on a fixed surface, and takes place in the
Draw
monad;document structure is concerned with a sequence of pages, their bounding boxes, and other meta-data. It takes place in the
Document
monad.
In principle, the functionality provided by EasyRender is similar to a subset of Cairo; however, EasyRender is lightweight and at least an order of magnitude faster.