我在 Delphi 2009 和 Rave Reports 中开发了一个应用程序。我想在报告中打印一张图片。我将如何实现这一点?
任何建议将不胜感激。
使用 Draw(X, Y: Double; Graphic: TGraphic); TBaseReport 后代的方法,除非您正在绘制位图。在这种情况下,使用 TBaseReport.PrintBitmap(X, Y: Double; ScaleX, ScaleY: Double; Bitmap: TBitmap); 或 PrintBitmapRect(X1, Y1, X2, Y2: Double; Bitmap: TBitmap);
Draw() 记录在 ms-help://embarcadero.rs2009/Rave/draw.htm 的 D2009 帮助文件中
var
MyLogo: TGraphic;
begin
MyLogo := TMetafile.Create;
try
MyLogo.LoadFromFile('MYLOGO.WMF');
RvNDRWriter1.Draw(1.0,2.0,MyLogo);
finally
MyLogo.Free;
end; { tryf }
end;
您可以在 Delphi 2009 帮助文件主题 ms-help://embarcadero.rs2009/Rave/printbitmap.htm 中找到 PrintBitmap 的示例 - 该页面上有 PrintBitmapRect() 的链接。
// Print MyBitmap in upper left corner four times its size
RvNDRWriter1.PrintBitmap( 1.0, 1.0, 2.0, 2.0, MyBitmap );
我对 Rave Reports 也有同样的问题,这取决于您要预览或打印的图像类型。如果它是 WMF,您可以使用 Ken White 的示例:
var
MyLogo: TGraphic;
begin
MyLogo := TMetafile.Create;
try
MyLogo.LoadFromFile('MYLOGO.WMF');
RvNDRWriter1.Draw(1.0,2.0,MyLogo);
finally
MyLogo.Free;
end; { tryf }
end;
但是当使用 BMP 时:
RvNDRWriter1.PrintBitmap( 1.0, 1.0, 2.0, 2.0, MyBitmap );
当使用 JPEG IMAGE 时:在调用 RvNDRWriter1 之前,您必须先将 JPEG 转换为 BMP。
Jpeg2bmp('temp.bmp',jpegfile);
pic1.picture.loadfromfile('temp.bmp');
pic1.Visible:=true;