打印图像的实际尺寸

opc*_*0de 3 printing delphi

嗨伙伴我想打印我生成的图片我使用下面的代码

  Printer.BeginDoc;
  Printer.Canvas.Draw(0,0,img1.Picture.Bitmap);
  Printer.EndDoc;
Run Code Online (Sandbox Code Playgroud)

它的工作原理,但它打印的图像非常小,我如何打印屏幕上显示的图像的实际大小?

非常感谢.

Dav*_*nan 5

你可以打个电话Canvas.StretchDraw().但是,要为结果做好准备,不要太令人印象深刻.尝试以这种方式缩放光栅图像将导致非常块状的结果.矢量图像是您需要的,以便能够扩展到打印机分辨率.

var
  Scale: Integer;
...
Scale := Min(
  Printer.PageWidth div Bitmap.Width,
  Printer.PageHeight div Bitmap.Height
);
Printer.Canvas.StretchDraw(
  Rect(0, 0, Bitmap.Width*Scale, Bitmap.Height*Scale), 
  Bitmap
);
Run Code Online (Sandbox Code Playgroud)

我在这里选择的缩放将保留纵横比,并在打印时使图像尽可能大.

  • @Downvoter你介意让我知道为什么你觉得这个答案"没用"? (3认同)