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