|
THotPDF.UseObjectStreams
|
Вверх Назад Далее |
|
Упаковывает подходящие непрямые объекты PDF 1.5 в
Синтаксис Delphi: property UseObjectStreams: Boolean;
Синтаксис C++: __property bool UseObjectStreams;
Описание Когда UseObjectStreams истинно (а UseXRefStream также истинно), EndDoc упаковывает каждый подходящий непрямой объект — словари, array, числа, имена, строки, boolean, null — в один или несколько
Естественно сочетается с UseXRefStream для самого компактного writer-конвейера PDF 1.5+. Упаковщик ObjStm оставляет несжатыми объекты stream, словарь шифрования и указываемые в trailer словари Catalog и Info, чтобы даже минимальные PDF-парсеры могли найти корни документа и расшифровать контент
Значение по умолчанию: false (включается вручную). Установка UseObjectStreams в true молча откатывается к false, когда UseXRefStream выключен (записи типа 2 непредставимы в текстовой таблице xref по спецификации) или когда Версия ниже PDF 1.5.
Он также принудительно выключен под PDF/A-1: ISO 19005-1 (PDF 1.4, пункт 6.1.4) запрещает сжатые object stream вместе с кросс-ссылочными stream, на которых они едут, поэтому EndDoc пишет классическую таблицу xref всякий раз, когда PDFACompliance называет уровень part-1, тогда как PDF/A-2 и PDF/A-3 (PDF 1.7) оставляют его доступным
Пример кода
Уменьшение размера На документах, где доминируют маленькие непрямые словари (многостраничные документы, аннотации, widget AcroForm, элементы дерева структуры, слои Optional Content), экономия обычно составляет 20-40% от размера файла после FlateDecode. 30-страничный smoke-тест только с графикой сжимается с 14502 байтов до 8488 байтов (-41.5%)
См. также UseXRefStream, Сжатие, Версия, Поддержка фильтров PDF
|