CompressPage

Свойства страницы

Описание

Сжимает поток содержимого выбранной страницы алгоритмом Flate (zlib). Поведение идентично CompressContent, но ограничено одной страницей. Цикл по всем страницам с SelectPage и CompressPage дает тот же результат, что один вызов CompressContent, с тем преимуществом, что приложение может показывать прогресс по страницам в UI

Синтаксис

Delphi

Function TPDFlib.CompressPage: Integer;

ActiveX

Function PDFlib::CompressPage() As Long

DLL

int DLCompressPage(int InstanceID);

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

0Failed — no document is open or no page is selected.
1Поток содержимого страницы сжат (либо уже был сжат и оставлен как есть)

Примечания

Уже сжатые потоки пропускаются, поэтому двойной вызов CompressPage на одной странице безвреден. Сборка Win64 использует комплект SIMD-объектов zlib-ng, сборка Win32 — общий комплект zlib-ng в режиме совместимости с zlib

Пример

// Compress every page individually so the UI can report progress
var
  I, N: Integer;
begin
  N := PDF.GetPageCount;
  for I := 1 to N do
  begin
    PDF.SelectPage(I);
    PDF.CompressPage;
    ProgressBar1.Position := (I * 100) div N;
    Application.ProcessMessages;
  end;
  PDF.SaveToFile('compressed.pdf');
end;

См. также

CompressContent, CompressImages, CompressFonts, SelectPage, PageCount