program GeneratingInMemory;

{$APPTYPE CONSOLE}

uses

SysUtils, Graphics, Classes, HPDFDoc;

 

var

HPDF: THotPDF;

MemStream: TMemoryStream;

OutputStream: TFileStream;

begin

HPDF:= THotPDF.Create(nil);

try

MemStream := TMemoryStream.Create;            // Create memory stream

      try

HPDF.OutputStream := MemStream;           // Set output stream

HPDF.Compression := cmFlateDecode;        // Set flate compression

 

HPDF.BeginDoc;                                          // Start PDF generation

HPDF.CurrentPage.TextOut(10, 10, 0, 'Hello World!'); // Write text on the page

HPDF.EndDoc;                                            // Finalize the PDF in memory

 

MemStream.Position := 0;                 // Rewind before copying to a file stream

 

OutputStream := TFileStream.Create( 'Memory.pdf', fmCreate ) ;  // Create output filestream

          try

OutputStream.CopyFrom( MemStream, MemStream.Size );           // Copy the generated PDF from memory

finally

OutputStream.Free;                                            // Close output filestream

end;

      finally

MemStream.Free;                            // Release the memory stream

      end;

  finally

HPDF.Free;

  end;

end.