form上有几个image.image里都放着图片,请问如何把这几张图片按照它在form上的
排列和大小打印出来,我知道打印一张图片用print.canvas,但打印几张图片就不知道怎么办了。我感觉不会是有几个image就对应写几个print.canvas吧。(另外不用form.print).听说form.print打出来效果很差,只要能把图片打出来并且比较清晰就可以了(因为是图片,所以要求清晰)边距不用考虑,只要大体上在纸的中间就可以了。另外打印预览如何实现。谢谢各位。
排列和大小打印出来,我知道打印一张图片用print.canvas,但打印几张图片就不知道怎么办了。我感觉不会是有几个image就对应写几个print.canvas吧。(另外不用form.print).听说form.print打出来效果很差,只要能把图片打出来并且比较清晰就可以了(因为是图片,所以要求清晰)边距不用考虑,只要大体上在纸的中间就可以了。另外打印预览如何实现。谢谢各位。
// 设置 MyRect1 在打印机画布的位置和大小
Printer.Canvas.StretchDraw(MyRect1,Image1.Picture.Bitmap);// 设置 MyRect2 在打印机画布的位置和大小
Printer.Canvas.StretchDraw(MyRect2,Image2.Picture.Bitmap);
....Printer.EndDoc ;注释:MyRect1是TRect 类型,图片要打印到打印机画布上的矩形位置,
调整MyRect1大小,以适应你的打印输出比例。
Printer.Canvas是一块“布”,你想画什么,
在Image2.Picture.Bitmap里定义,画在哪里,在MyRect2中定义
TBitmap.HandleType特性设为bmDIB.这样就可以用:
printer.begindoc;
printer.canvas.draw(0,0,Bitmap);
printer.enddoc;
你好,谢谢你的回答,你的意思是几个image就对应写几个print.canvas?
你可以把多个IMAGE 画到 printer.canvas中一起打印!这个很简单的,只要你多花点时间,多试试,肯定多多OK!
你好,那你上面的代码不就是对应写几个print.canvas么?不好意思,我第一次接触打印,不要笑话我。
哈哈!其实printer.canvas还是那个printer.canvas,
只是利用MyRect1和MyRect2设置不同的打印位置。
你好,你的意思是不是把每个图画到canvas上,然后用Printer.NewPage?to all
请问大家打印预览如何实现。我下面的代码为什么不能用?
var
r1:TRect;
begin
r1:=Rect(0,0,97,81);
form2.Canvas.StretchDraw(r1,image1.Picture.Graphic);
form2.ShowModal;
end;
你好,我是想在一页上打印这些图片,另外麻烦你帮我看一下上面的打印预览的代码为什么不能用。
打印预览的代码改成下面的可以了(form2上加个image,并设为alClient)但是预览的图形很小,我知道如果打印的图象小需要用GetDeviceCaps取得打印机的分辨率并转换但是现在是预览为什么图形很小呢?var
r1:TRect;
begin
r1:=Rect(0,0,97,81);
form2.image1.Canvas.StretchDraw(r1,image1.Picture.Graphic);
form2.ShowModal;
end;