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; // צור זרם זיכרון

      try

          HPDF.OutputStream := MemStream; // הגדר זרם פלט

          HPDF.Compression := cmFlateDecode; // הגדר דחיסת flate

 

          HPDF.BeginDoc; // התחל יצירת PDF

          HPDF.CurrentPage.TextOut(10, 10, 0, 'Hello World!'); // כתוב טקסט בעמוד

          HPDF.EndDoc; // סיים את ה-PDF בזיכרון

 

          MemStream.Position := 0; // החזר להתחלה לפני העתקה לזרם קובץ

 

          OutputStream := TFileStream.Create( 'Memory.pdf', fmCreate ) ; // צור זרם קובץ פלט

          try

              OutputStream.CopyFrom( MemStream, MemStream.Size ); // העתק את ה-PDF שנוצר מהזיכרון

          finally

              OutputStream.Free; // סגור זרם קובץ פלט

          end;

      finally

          MemStream.Free; // שחרר את זרם הזיכרון

      end;

  finally

      HPDF.Free;

  end;

end.