【问题标题】:Printing image in Rave Reports在 Rave Reports 中打印图像
【发布时间】:2009-11-24 06:10:41
【问题描述】:

我在 Delphi 2009 和 Rave Reports 中开发了一个应用程序。我想在报告中打印一张图片。我将如何实现它?

非常感谢任何建议。

【问题讨论】:

    标签: delphi rave-reports


    【解决方案1】:

    使用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 上)通常假设人们完全通过代码制作报告。没有视觉设计师了吗? (我仍然使用它,但 Delphi 对我们来说是传统的)。
    【解决方案2】:

    我对 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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多