property Compressed: Boolean; // default True
Compressed определяет, будет ли очередной вызов SaveAs
(и родственных методов) применять сжатие потоков после записи. При True —
значении по умолчанию — PDFium Delphi Component сериализует документ через PDFium, затем выполняет
проход, заменяющий несжатые потоки содержимого и метаданных их эквивалентами со
сжатием FlateDecode, и перезаписывает таблицу перекрёстных ссылок с учётом новых смещений
При False выходные потоки записываются как есть. Полученный файл
обычно в 2-10 раз больше, но остаётся читаемым при открытии в текстовом редакторе,
что удобно для отладки потоков содержимого, сравнения двух редакций PDF с помощью
diff или передачи результата в инструмент, понимающий синтаксис PDF
и предпочитающий несжатые данные
Установка Compressed меняет только поведение следующего сохранения;
документ в памяти остаётся неизменным. Документ, загруженный сжатым и сохранённый с
Compressed := False, будет распакован при выводе; документ, загруженный
несжатым и сохранённый с Compressed := True, будет сжат при выводе.
Полный цикл сохранения сжатого документа с Compressed := True даёт
практически идентичный размер файла — механизм распознаёт уже сжатые потоки и не
сжимает их повторно
// 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;