如何将Quickrep报表内容输出为图形文件(如BMP OR JPG)???急!急急!!急急急!!!200分奉上(200分)

  • 主题发起人 主题发起人 询人启事
  • 开始时间 开始时间

询人启事

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将Quickrep报表内容输出为图形文件(如BMP OR JPG)???
 
输出是不是导出??
 
是的。。。
 
用QuickRep自带的TQrWMFFilter可以把报表输出成*.WMF格式!
然后再打开这个*.WMF(文件本身可以被ACDSee识别!)文件,用
TBitmap来转换成*.BMP ,用TJPEG转换成*.JPG就可以了!
 
具体如何能给出范例源码吗???
 
唉,这两天太忙,过两天写个例子给你,
如果能等的话留个email
 
你先放一个TQRPreview控件,然后在QRReport的OnPreview事件中写上
procedure TForm1.QuickRep1Preview(Sender: TObject);
begin
QRPreview1.QRPrinter := TQRPrinter(Sender);
end;
然后在Form.Show中写
procedure TForm1.FormShow(Sender: TObject);
begin
QuickRep1.Preview;
end;
最后放一个Button写OnClick
procedure TForm1.Button1Click(Sender: TObject);
var
E: TMetaFile;
B: TBitmap;
begin
E := QRPreview1.QRPrinter.GetPage(1);
//想要第几页就GetPage几,从1开始
B := TBitmap.Create;
try
with TMetafileCanvas.Create(E, 0)do
try
B.Height := E.Height;
B.Width := E.Width;
B.Canvas.Draw(0, 0, E);
B.SaveToFile('C:/B.bmp');
finally
Free;
end;
finally
B.Free;
end;
end;
 
jadeboy@371.net
 
呵呵,本来用TQrWMFExport都做好了,要打包的时候发现对于多页报表有问题,
由于在多页状况下生成的报表文件名不太好处理,只好把203010兄的改了一下:
//========================
//将当前打印面保存到文件
//========================
procedure TForm1.SaveToPIC(const APageNum: Integer);
var
E: TMetaFile;
B: TBitmap;
J: TJPEGImage;
s: string;
begin
//========================
//获取当前打印页的WMF描述
//========================
E := frmBasicMD.QuickRep1.QRPrinter.GetPage(APageNum);
//========================
B := TBitmap.Create;
try
J := TJPEGImage.Create;
try
with TMetafileCanvas.Create(E, 0)do
try
//========================
//将WMF转换成BMP
//========================
B.Height := E.Height;
B.Width := E.Width;
B.Canvas.Draw(0, 0, E);
s := 'C:/' + IntToStr(APageNum) + '.BMP';
B.SaveToFile(s);
//========================
//将位图保存成JPEG格式
//========================
J.CompressionQuality := 50;
J.Assign(B);
s := 'C:/' + IntToStr(APageNum) + '.JPG';
J.SaveToFile(s);
//========================
finally
Free;
end;
finally
J.Free;
end;
finally
B.Free;
end;
end;
完整的代码已发,请查收!
 
多人接受答案了。
 
不是吧,才分我20分?
 
那如果报表有100页,而我要把这100页都保存下来呢,应该在那儿调用SaveToPIC
(const APageNum: Integer);这个函数呢
 
TO 203010兄:
对不起,给错了,下次再给你补上。。。。请原谅。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部