这是我的方法:(VC中纯用API,估计DELPHI也一定行)
HBITMAP hCBitmap;
HDC hdcMem;
hdcMem=CreateCompatibleDC(canvas.Handel);
hCBitmap=CreateCompatibleBitmap(hdcMem,tt,tt2);
SelectObject(hdcMem,hCBitmap);
BitBlt(hdcMem,0,0,tt,tt,canvas.Handel,0,0,SRCCOPY);//先将画布
上的内容拷贝到内存区,这样就变成黑白的了,绿黄色由点疏密来表示
BitBlt(canvas.Handel,50,100,tt,tt,hdcMem,0,0,SRCCOPY);再copy
回来,或copy到打印机的dc上。
声明:在VC上是肯定没问题,在delphi上你可以照我的方法试试,不行再说。