|
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. |