PDFium Delphi Component Docs

Compressed Свойство

Компонент: TPdf  ·  Модуль: PDFium
Определяет, сжимаются ли потоки в выходном PDF с помощью FlateDecode при вызове SaveAs / Save. Механизм сжатия после сохранения сканирует сериализованный PDF, заменяет несжатые потоки их zlib-сжатыми эквивалентами и перестраивает таблицу xref. Уже сжатые потоки проходят без изменений

Syntax

property Compressed: Boolean; // default True

Description

Compressed определяет, будет ли очередной вызов SaveAs (и родственных методов) применять сжатие потоков после записи. При True — значении по умолчанию — PDFium Delphi Component сериализует документ через PDFium, затем выполняет проход, заменяющий несжатые потоки содержимого и метаданных их эквивалентами со сжатием FlateDecode, и перезаписывает таблицу перекрёстных ссылок с учётом новых смещений

При False выходные потоки записываются как есть. Полученный файл обычно в 2-10 раз больше, но остаётся читаемым при открытии в текстовом редакторе, что удобно для отладки потоков содержимого, сравнения двух редакций PDF с помощью diff или передачи результата в инструмент, понимающий синтаксис PDF и предпочитающий несжатые данные

Установка Compressed меняет только поведение следующего сохранения; документ в памяти остаётся неизменным. Документ, загруженный сжатым и сохранённый с Compressed := False, будет распакован при выводе; документ, загруженный несжатым и сохранённый с Compressed := True, будет сжат при выводе. Полный цикл сохранения сжатого документа с Compressed := True даёт практически идентичный размер файла — механизм распознаёт уже сжатые потоки и не сжимает их повторно

Remarks

Example

// Save an uncompressed copy alongside the compressed original for debugging
begin
  Pdf.Active := True;
  Pdf.Compressed := True;
  Pdf.SaveAs('output.pdf'); // production copy
  Pdf.Compressed := False;
  Pdf.SaveAs('output_debug.pdf'); // human-readable copy
end;

See Also

SaveAs, Save, Active, Password