5,388
社区成员
发帖
与我相关
我的任务
分享
Uses Printers;
procedure TForm1.Button1Click(Sender:TOBject);
var
BMp:TBitMap;
begin
Bmp:=TBitMap.Create;
Bmp.Width:=Pnl.Width;
Bmp.Height:=Pnl.Height;
Pnl.Paintto(Bmp.Canvas,0,0);
//打印
Printer.BeginDoc;
ScaleX := GetDeviceCaps(Printer.Canvas.Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Printer.Canvas.Handle, logPixelsY) div PixelsPerInch;
dx := trunc((Printer.PageWidth-Bmp.Width*Scalex)/2);
dy := trunc((Printer.PageHeight-Bmp.height*Scalex)/2);
r.Left := dx;
r.Top := dy;
r.Right := dx+trunc(Bmp.Width*Scalex);
r.Bottom := dy+trunc(Bmp.Height*ScaleY);
Printer.Canvas.StretchDraw(r,Bmp);
Printer.EndDoc;
end;