打印图片问题? (100分)

G

ghbh

Unregistered / Unconfirmed
GUEST, unregistred user!
form上有几个image, image里都放着图片,请问如何把这几张图片按照它在form上的
排列和大小打印出来,我知道打印一张图片用print.canvas,但打印几张图片就不知道怎
么办了。(不用form.print),听说form.print打出来效果很差,只要能把图片打出来并且比
较清晰就可以了(因为是图片,所以要求清晰)边距不用考虑,只要大体上在纸的中间就
可以了。另:打印预览如何实现。
谢谢各位。
 
如果你把IMAGE的图象DRAW捕捉到的视频图象里面,
不就解决了问题吗?
具体可以联系!
cdyxl@163.com
MSN: gz_oscar@msn.com
 
print.canvas可以在上面画呀!
将你的图片依次按照窗体上的位置画在PRINT.CANVAS上不就行了。
很基本的操作。
 
直接在 PRINT.CANVAS 上画
 
to only you:
不好意思,我第一次接触打印,我知道怎样画在PRINT.CANVAS上,但我不知道
怎样依次按照窗体上的位置画,
麻烦你说的详细一点,谢谢。
 
PRINT.CANVAS.strctchDraw(
Rect(
Image1.left,
Image1.top,
Image1.left+image1.Picture.Graphic.Width,
Image1.Top+image1.Picture.Graphic.Height
),
image1.Picture.bitmap )
 
to jsxjd;
不好意思问一下,我的每个image是不是都要写一个PRINT.CANVAS.strctchDraw,有没有
办法循环。谢谢。
 
直接打印Form!
 
to zxbyh
听说直接打印Form效果很差。
 
这样写打印预览为什么什么也没有?
var
r1:TRect;
begin
r1:=Rect(0,0,97,81);
form2.Canvas.StretchDraw(r1,image1.Picture.Graphic);
form2.ShowModal;
end;
 
var
i:integer;
Img:TImage;
begin
for i:=0 to componentcount-1do
if components is TImage then
begin
Img:=TImage(components);
Printer.CANVAS.stretchDraw(
Rect(Img.left,Img.top,
Img.left+img.Picture.Graphic.Width,
Img.Top+img.Picture.Graphic.Height
),
img.Picture.bitmap )
end;
end;
 
to jsxjd;
非常感谢你的回答,不好意思再问一下打印预览的实现,我上面的为什么不能用?
 
那就用CopyRect函数,用一个Form来预览,就Copy到Form.Canvas上,
打印就Copy到Printer.Canvas
 
to zxbyh:
这样说我上面的打印预览的代码应该能用呀,为什么不能用呢?
 
to all:
打印预览的代码改成下面的可以了(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;
 
多人接受答案了。
 

Similar threads

回复
0
查看
812
不得闲
D
回复
0
查看
677
DelphiTeacher的专栏
D
D
回复
0
查看
664
DelphiTeacher的专栏
D
顶部