如何将一张图象等比添充一张打印到指定大小的纸上?(100分)

  • 主题发起人 question
  • 开始时间
Q

question

Unregistered / Unconfirmed
GUEST, unregistred user!
需要将一幅图形打印到指定大小的打印纸上(不使用报表构件,如QR),我
通过引用 Printers 单元完成打印,现在的问题是我打印出来的图形仅仅
只占用了我纸张的一个脚,而我希望能将他打满整张纸,我该如何做?
Thank you!
急!!!
 
填充算法如下:
var
x, y: Integer;
Picture: TBitmap;
begin

Picture := TBitmap.Create;
Picture.LoadFromFile('C:/PWIN/Circles.bmp');
y:=0;
while y < PaintBox1.Heightdo

begin

x:=0;
while x < PaintBox1.Widthdo

begin

PaintBox1.Canvas.Draw(x, y, Picture);
Inc (x, Picture.Width);
end;

Inc (y, Picture.Height);
end;

Picture.Free;
end;

把对 PaintBox1 的操作换成对 Printer 的操作即可。
 
如果我就是打印Printer.Canvas.LineTo(100,100)类似这样的图形呢?
怎么办?
我也很着急
 
icoy:
你先把图形保存在Timage里,
然后把TImage里的图形扩充,然后打印。
 
PC,SC: Integer;
PC是打印机的分辨率;SC是显示器的分辨率
PC:=GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY);
SC:=GetDeviceCaps(GetDC(0), LOGPIXELSY);

打印机与显示器画面的比例关系Multi:=PC/SC;

Canvas.StretchDraw;
//注意参数中的点坐标不是显示器的点坐标,而是打印
机的点坐标(用显示器坐标*Multi)。

Canvas.LineTo是一样的.
 
多人接受答案了。
 
顶部