How To…Export an Archive to Stream

Question

“Is is possible to export an archive directly to a memory stream?”

Solution

Starting with ReportBuilder 9, it is possible to use the TppStreamDevice.OutputStream property to export a report directly to a memory stream.  Note that you will need to create and manage the string yourself once you take control of it.

Download: ArchiveToStream.zip

Sample Delphi code:

procedure TForm1.FormCreate(Sender: TObject);
begin
  FOutputStream := TMemoryStream.Create;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  lArchiveDevice: TppArchiveDevice;
begin

  FOutputStream.Clear;

  lArchiveDevice := TppArchiveDevice.Create(nil);

  lArchiveDevice.OutputStream := FOutputStream;

  lArchiveDevice.Publisher := ppReport1.Publisher;

  ppReport1.PrintToDevices;

  lArchiveDevice.Free;

end;