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.