Pure GrapeCity.ActiveReports.Drawing.IDrawingCanvas implementation which allows you to save the drawing into stream and then re-draw on to arbitrary IDrawingCanvas. It is for creation of temporary storage of preview pages. Each IDrawingCanvas's method call turns into the single or multiple CanvasItem which written than to the IMetaCanvasItemWriter DrawImage calls also stores image content into separated storage IImageWriter.