楼主,你是太懒了还是太菜了? 另外,是否立马结贴我一点都不关心,我不在乎分,很反感这种字眼。procedure TForm1.Button1Click(Sender: TObject); var R: TRect; ScaleX, ScaleY: Integer; begin if not PrinterSetupDialog.Execute then exit; Printer.BeginDoc; with Printer do try ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch; ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch; R := Rect(0, 0, StrToInt(Edit1.text) * ScaleX,StrToInt(Edit2.text) * ScaleY); Canvas.StretchDraw(R, Image1.Picture.Graphic); //直接往打印机输出"Printer.Canvas.StretchDraw" finally EndDoc; end; end;
var
ScaleX, ScaleY: Integer;
R: TRect;
begin
Printer.BeginDoc;
with Printer do
try
ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
R := Rect(0, 0, Image1.Picture.Width * ScaleX,Image1.Picture.Height * ScaleY);
Canvas.StretchDraw(R, Image1.Picture.Graphic); //直接往打印机输出"Printer.Canvas.StretchDraw"
finally
EndDoc;
end;
end;
2.没有用到Edit1.text和Edit2.text设置高度和宽度。(如果图片不合尺寸可以使图片变形但不可以剪截)希望再次看到您的回复。写出来,我马上结贴。
另外,是否立马结贴我一点都不关心,我不在乎分,很反感这种字眼。procedure TForm1.Button1Click(Sender: TObject);
var
R: TRect;
ScaleX, ScaleY: Integer;
begin
if not PrinterSetupDialog.Execute then exit;
Printer.BeginDoc;
with Printer do
try
ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
R := Rect(0, 0, StrToInt(Edit1.text) * ScaleX,StrToInt(Edit2.text) * ScaleY);
Canvas.StretchDraw(R, Image1.Picture.Graphic); //直接往打印机输出"Printer.Canvas.StretchDraw"
finally
EndDoc;
end;
end;