Printer.Canvas 打印(100分)

  • 主题发起人 主题发起人 tayancom
  • 开始时间 开始时间
T

tayancom

Unregistered / Unconfirmed
GUEST, unregistred user!
請教前輩:
當image.Canvas繪完一張圖後(716*1000),
方法1.用printer.Canvas.Draw(0,0,image1.Picture.Bitmap).結果圖太小,不失真.
方法2.用Printer.Canvas.StretchDraw(Rect(0,0,Printer.PageWidth,Printer.PageHeight),image1.Picture.Bitmap);
結果圖大小滿一頁,可是會失真.
請問該如何讓圖大小滿一頁,又不會失真?
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=902723
看看。
 
按照显示比例打印IMAGE上的图象 :

uses Printers;

procedure TForm1.Button1Click(Sender: TObject);
var
ScaleX, ScaleY: Integer;
R: TRect;

begin

Printer.begin
Doc;
// **
with Printerdo

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);
// **
finally
EndDoc;
// **
end;

end;


我參考了上面的代碼,可是圖形還是會失真
例如:圓形會鋸齒狀.變得很難看
 
后退
顶部