打印图像,为什么会有时空白? 你还可以输入80个字符,该如何处理

打印图像,为什么会有时空白?--- 你还可以输入80个字符
   
    prtimg.Picture.Bitmap.Width:=ssp.width;
    prtimg.Picture.Bitmap.Height:=ssp.Height;          prtimg.Picture.Bitmap.Canvas.CopyRect(prtimg.Picture.Bitmap.Canvas.ClipRect,ssp.Canvas,ssp.Canvas.ClipRect);      Printer.Canvas.StretchDraw(Rect(0,0,trunc(21*0.3937008*getdevicecaps(printer.Handle,logpixelsx)),
      trunc(21*0.3937008*getdevicecaps(printer.Handle,logpixelsy))),prtimg.Picture.Graphic);
    printer.Canvas.TextOut(1,1,'大水印');
 
不明白,为什么在hp系列打印机 有时候可以正常打印,有时候只能打印最后一句"大水印".其他的都是空白.
但是用windows自带图片浏览器打印就都能正常打印.
我上面的语句有没有什么地方不对的吗?其他的打印机好像都正常的,没有打印不出来的.
------解决方案--------------------
嗯,不光是HP的打印机的问题,这应该是DELPHI的一个小BUG,打印图像时最好不直接调用STRECHDRAW,DRAW这样封装好的画布函数,很容易打印成空白的,而且没有规律。换一种方式实现吧