procedure TForm1.btn1Click(Sender: TObject);
Var
MyPage: TRavePage;
MyBitmap: TRaveBitmap;
begin
RvProject.Open;
MyPage := RvProject.ProjMan.FindRaveComponent('Report1.Page1', nil) as TRavePage;
MyBitmap:= MyPage.FindComponent('BMP1') As TRaveBitmap;
MyBitmap.Image.Assign(Img1.Picture.Bitmap);
RvProject.Execute;
end;
procedure TReportsFrm.Print1Click(Sender: TObject);
begin
MyRvSystem.Execute;
end;
procedure TReportsFrm.MyRvSystemPrint(Sender: TObject);
Var Report: TBaseReport;
begin
PrintGraphicsReport(Sender as TBaseReport)
end;
procedure TReportsFrm.PrintGraphicsReport(Report: TBaseReport);
begin
with Report do
begin
PrintBitmap(0.5,0.5,1,1, ReportImg.Picture.Bitmap); // This is the Bitmap that came from the Merge Procedure of yesterday
end;
end;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, RpDefine, RpRave, RvCsDraw, RvCsStd, RvClass,
RpRender, RpRenderCanvas, RpRenderPreview;
type
TForm1 = class(TForm)
RvProject: TRvProject;
img1: TImage;
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
Var
MyPage: TRavePage;
MyBitmap: TRaveBitmap;
begin
RvProject.Open;
MyPage := RvProject.ProjMan.FindRaveComponent('Report1.Page1', nil) as TRavePage;
MyPage.Orientation:=poLandscape; // You can do this, but I prefer setting it from Rave Designer
MyBitmap:= MyPage.FindComponent('BMP1') As TRaveBitmap;
MyBitmap.Image.Assign(Img1.Picture.Bitmap);
RvProject.Execute;
RvProject.Close;
end;
end.
procedure TReportsFrm.MyRvSystemPrint(Sender: TObject);
Var Report: TBaseReport;
begin
if ReportPageControl.ActivePageIndex = 0 Then // TreeView
PrintTreeViewReport(Sender as TBaseReport)
else
if ReportPageControl.ActivePageIndex = 1 Then // GridView
PrintReportStringGrid(Sender as TBaseReport)
else
if ReportPageControl.ActivePageIndex = 2 Then // Graphics View
PrintGraphicsReport(Sender as TBaseReport)
end;
procedure TReportsFrm.PrintGraphicsReport(Sender: TObject);
var
Bitmap : TBitmap;
BitmapHeight, BitMapWidth : Integer;
begin
with Sender as TBaseReport do
begin
//MyRvSystem.SystemPrinter.Orientation := poLandscape;
SetFont('Arial', 15);
FontColor := clRed;
PrintXY(0.5,0.5, ReportName);
try
BitmapWidth := ReportImg.Picture.Bitmap.Width;
BitmapHeight := ReportImg.Picture.Bitmap.Height;
PrintBitmapRect(0.2,0.2, PageWidth - 0.2, PageHeight - 0.2 , ReportImg.Picture.Bitmap);
finally
end;
end;
end;
I'll try to find the best way to print bitmap on rave reports, I can use the one that comes with Delphi 2007