打印image(30分)

林枫

Unregistered / Unconfirmed
GUEST, unregistred user!
我的image在窗口中只能显示 1/4
我打印的时候,想打印全部,但打出的结果跟显示的完全相同
代码: Re.Left:=20;//Trunc(2/2.54*ppix)*8; //左边距2厘米
Re.Top:=20;//Trunc(2/2.54*ppiy)*8; //上边距2厘米
Re.Right:=image1.width;//(Trunc(19/2.54)+Rect.Left)*8;
Re.Bottom:=image1.height;//(Trunc(27.7/2.54)+Rect.Top)*8;

Printer.BeginDoc;
Printer.Canvas.StretchDraw(Re,image1.Picture.Graphic);
Printer.EndDoc;
问: 怎么能打印全部的图象?
 
给这个IMAGE中的图片创建一个内存对象,然后再用这个内存对象画在打印机上,行不?
 
(Trunc(19/2.54)+Rect.Left)*8; 是什么意思?19代表什么?
 
To cjg325:
那是以前写的,不是注释掉了吗? 正确的
Re.Left:=20;
Re.Top:=20;
Re.Right:=image1.width;
Re.Bottom:=image1.height;


 

Re.Right:=Re.Left+image1.Picture.Graphic.Width;
Re.bottom:=Re.bottom+image1.Picture.Graphic.Height;
..................
StretchDraw(Re, Image1.Picture.Bitmap);
/////
 
这种方法打印出的图象太小了,我只能用
Printer.Canvas.StretchDraw(Re,image1.Picture.Graphic);
方法,把 Re 矩形区放大到我需要的大小,但这样打出来的文字和线条太粗了
而我在内image上直接画时,却只能打印出一部分
 
怎么解决的?
 
是笨方法,我在打印前先设image的宽、高,
然后打印,我在image上画的图width:=3000,height:=4500
太大了,就这样,打印的时候还得扩大2.75倍。
这时候的图有12m多。

我不知道,怎么连续打印。现在是打一张图建一个打印任务,我是用循环来打印多张图的,
一旦打印多张的话,就更慢了。
急呀!!!
 
多人接受答案了。
 
顶部