CompressContent

Свойства документа

Описание

Сжимает каждый поток содержимого страниц в выбранном документе. Используется алгоритм Flate (zlib), поэтому при сохранении документа потоки несут фильтр /FlateDecode. Уже сжатые потоки не трогаются

В Windows встроенный бэкенд zlib-ng работает в режиме совместимости с zlib. Win64-сборки линкуют SIMD-набор объектов zlib-ng для bcc64x, Win32 сохраняет универсальный набор с упором на совместимость. Существующий код Delphi, ActiveX, DLL и C++Builder правок не требует

Синтаксис

Delphi

Function TPDFlib.CompressContent: Integer;

ActiveX

Function PDFlib::CompressContent() As Long

DLL

int DLCompressContent(int InstanceID);

Возвращаемые значения

0No document is open or compression failed.
1Потоки содержимого страниц успешно сжаты

Примечания

Это операция по всему документу. Используйте CompressPage, если нужно сжать только выбранную страницу. Управлять тем, хранятся ли вновь добавляемые изображения и шрифты сжатыми, можно через CompressImages и CompressFonts соответственно

Прогоните один раз перед SaveToFile при сжатии свежесобранного документа; экономия обычно велика на страницах, насыщенных текстом, и ничтожна на страницах из в основном уже сжатых данных изображений

Пример

// Build a document, compress everything, then save
PDF.NewDocument;
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.PrintText(50, 750, 'Compressed document');

PDF.CompressContent;                   // page streams -> /FlateDecode
PDF.CompressImages(1);                 // also flate-encode any subsequent images
PDF.SaveToFile('compressed.pdf');

См. также

CompressPage, CompressImages, CompressFonts, SaveToFile