How to print B&W bitmap fast !

I have a problem wiht printing a large black and white wiht Delphi. Now I
am using following method.

Printer.Canvas.Draw(0,0,Bitmap);

But in this way memory needed to print is over 5 Mb and it is realy slow.
Image's size is 970 kb (2339 * 3390 pixels).

Does anyone know a better way that do not need this much memory and works
fast. Now the printing time is almost a minute.

thanks

Janne Huovinen