图像打印小问题
//代码如下
procedure TfrmZoom.tbPrintClick(Sender: TObject);
var
ScaleX, ScaleY: Integer;
R: TRect;
sInf1,sInf2,sInf3:String;//打印图像的相关信息
imgPic:TImage;
begin
imgPic:=TImage.Create(nil);
imgPic.Picture.LoadFromFile(FileName);
try
if dlgPrnImg.Execute then
begin
with Printer do
try
Copies :=dlgPrnImg.Copies; // **
BeginDoc;
ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
sInf1:= '11111111111111';
sInf2:='22222222222';
sInf3:='打印日期:' + DateTimeToStr(Now());
R := Rect(0, 0 , imgPic.Picture.Width * ScaleX, imgPic.Picture.Height * ScaleY );
Canvas.StretchDraw(R, imgPic.Picture.Graphic);
Canvas.TextOut(0,imgPic.Picture.Height* ScaleY + Canvas.Font.Height + 5*ScaleY, '图像信息:' );
Canvas.TextOut(0, imgPic.Picture.Height* ScaleY + Canvas.Font.Height * 2 + 5*ScaleY, sInf1 );
Canvas.TextOut(0, imgPic.Picture.Height* ScaleY + Canvas.Font.Height * 3 + 5*ScaleY, sInf2 );
Canvas.TextOut(0, imgPic.Picture.Height* ScaleY + Canvas.Font.Height * 4 + 5*ScaleY, sInf3 );
finally
EndDoc;
end;
end;
finally
imgPic.Free;
end;
end;
//打印结果如下
=======================================
|
|
| (图像)
|sinf3
|sinf2
|sInf1
|======================================
文字老是打印在图片中,从图片下网上写文字