3-Heights PDF Optimizer уменьшает размер PDF за счёт перерасчёта изображений, удаления избыточных объектов, объединения и поднабора шрифтов, преобразования цветов и линейзации для быстрого показа первой страницы; параметры позволяют готовить отдельные профили для веб-публикации, печати, архива и сканированных документов.
Рабочий процесс строится вокруг команды pdfoptimize: сначала указывают исходный документ, затем отдельное имя результата и только после этого профиль либо набор параметров. Такой порядок удобен для проверки, потому что исходник остаётся доступен для визуального сравнения, а параметры можно повторить на следующей партии файлов без ручной перестройки каждого документа.
Перед сжатием полезно вывести перечень изображений и шрифтов, посмотреть их разрешение, фильтры, внедрение и поднабор, а затем включить подробный режим и контролировать код возврата. Это помогает отличить PDF, раздутый фотографиями, от файла с повторно внедрёнными гарнитурами или лишними служебными объектами и выбрать настройку, которая действительно влияет на размер.
Скачать 3-Heights PDF Optimizer
- Редактирование PDF
- Русский интерфейс
- Просто новичкам
- Нет графического редактора
- Нужна платная лицензия
- Нет встроенного OCR
Как устроена оптимизация PDF
Программа не пытается свести всю задачу к одному ползунку качество. Она последовательно анализирует внутреннее устройство PDF, ищет повторяющиеся и неиспользуемые ресурсы, оценивает изображения по типу цветового пространства, сопоставляет фактическое разрешение с порогом перерасчёта, обрабатывает внедрённые шрифты и при необходимости перестраивает расположение объектов для последовательной загрузки. Благодаря этому одинаковый итоговый размер можно получать разными способами: сильнее уменьшать фотографии, но сохранять структуру документа, либо почти не трогать растровые данные и экономить на шрифтах, метаданных и дублированных объектах.
Входным и выходным форматом служит PDF. Поддерживаются документы от PDF 1.0 до PDF 1.7, а также PDF 2.0. Для результата можно задать минимальную версию, однако фактическая версия определяется ещё и содержимым: JBIG2 требует не ниже PDF 1.4, а JPEG2000 — не ниже PDF 1.5. Поэтому параметр минимальной версии не способен заставить файл с несовместимым фильтром стать более старым; программа выбирает наибольшее из требований исходника, указанного значения и применённых способов кодирования.
Конвейер делится на этапы анализа, удаления избыточности, перерасчёта изображений, преобразования цветов, удаления выбранных возможностей и линейзации. Не каждый этап обязан менять документ. Например, фотография, уже записанная компактным JPEG, может остаться в исходном виде, если повторное кодирование даст больший поток. Это важное отличие от принудительной рекомпрессии: обычный режим стремится не увеличивать отдельное изображение, а параметр принуждения отменяет эту защиту.
Первый запуск и безопасная схема проверки
Минимальная команда содержит два имени файла:
pdfoptimize input.pdf output.pdf
Такой вызов создаёт новый PDF, но почти не выполняет полезной оптимизации. Он подходит для проверки доступности исполняемого файла, прав на чтение и запись, корректности путей и реакции на входной документ. Для реальной обработки нужен профиль или отдельные параметры. Начинать лучше с маленькой копии типичного документа, а не с единственного экземпляра многогигабайтного архива.
Пути с пробелами заключают в кавычки. В Windows удобно сразу разделить каталоги входа и результата:
pdfoptimize -pr web "C:\PDF source\report.pdf" "D:\PDF result\report-web.pdf"
В Unix-подобной оболочке принцип тот же:
pdfoptimize -pr web "/data/pdf source/report.pdf" "/data/pdf result/report-web.pdf"
Перед заменой исходника следует открыть результат в двух независимых просмотрщиках, проверить все страницы, поиск по тексту, закладки, формы, подписи и печать. Затем сравнивают размер и визуальное качество на масштабе не только по ширине, но и 200–400 процентов. Тонкие линии, мелкий шрифт внутри скана, штрихкоды и градиенты проявляют ошибки раньше обычных фотографий.
Как проверить доступность команды
Запуск pdfoptimize без параметров выводит синтаксис, перечень опций и сведения о сборке. Если оболочка сообщает, что команда не найдена, указывают полный путь к исполняемому файлу либо добавляют каталог с ним в переменную PATH. В Windows пакет MSI обычно размещает 64-разрядный компонент, а ZIP-архив позволяет выбрать двоичный файл вручную. На Linux и macOS основной файл находится в каталоге bin/x64; после распаковки проверяют динамические зависимости и только затем создают символическую ссылку в стандартном каталоге команд.
Ошибка поиска команды и ошибка самой оптимизации — разные ситуации. В первом случае процесс ещё не запущен, поэтому кода возврата продукта нет. Во втором команда найдена, но завершилась ненулевым кодом, который можно анализировать в сценарии. Это различие особенно важно в заданиях планировщика: неверный PATH может выглядеть как все файлы пропущены, хотя программа ни разу не была вызвана.
Профили: быстрый старт без случайного набора флагов
Профиль задаётся параметром -pr и устанавливает согласованный набор значений. После профиля разрешено указывать отдельные опции: они заменят только нужные части конфигурации. Такой порядок проще сопровождать, чем длинную строку из десятков параметров, потому что назначение команды видно по одному слову, а исключения остаются явными.
Web
Профиль web ориентирован на уменьшение времени передачи и быстрый показ документа. Он допускает сжатие фотографий с потерями, перерасчёт изображений, удаление лишних ресурсов и подготовку структуры для последовательной загрузки. Для отчётов, инструкций и презентаций, публикуемых на сайте, это обычно первая разумная проба. Если мелкие схемы становятся мягкими, повышают целевое разрешение или исключают нужный класс изображений из перерасчёта, а не отказываются от всего профиля.
Профиль print сохраняет больше данных, необходимых для качественного вывода. Он уместен для макетов, цветных буклетов, технических чертежей и документов, где важны тонкие линии и растровые элементы с высоким эффективным разрешением. Размер результата обычно выше, чем у веб-профиля, зато меньше риск заметить ступени на диагоналях и ореолы вокруг контрастного текста после печати.
Archive
Профиль archive выбирают, когда требуется долгосрочное хранение с умеренным уменьшением размера и контролем качества. Он не превращает документ в PDF/A. Если архивная система требует PDF/A, оптимизацию выполняют до специализированной конвертации и затем проверяют соответствие валидатором. Нельзя бездумно удалять метаданные, структуру и внедрённые шрифты: именно эти данные часто нужны правилам архива и полнотекстовому доступу.
Max и режим минимального размера
Профиль max стремится получить небольшой файл, применяя более агрессивные настройки. Он полезен как нижняя граница в тесте: если даже этот профиль почти не уменьшает документ, причина, вероятно, не в неиспользованных ресурсах, а в уже хорошо сжатом содержимом. Перед массовым применением нужно внимательно проверить фотографии, сканы печатей, подписи, штрихкоды и тонкие градации серого.
MRC
Профиль mrc предназначен для некоторых сканированных страниц со смешанным растровым содержимым. Он разделяет непрерывное изображение на маску и слои, позволяя жёстко сжать фон и сохранить контрастные детали переднего плана. Метод способен заметно уменьшить цветные сканы с текстом на неоднородной бумаге, но он не применяется к битональным и индексированным изображениям. Кроме того, MRC плохо подходит для последующего OCR и извлечения исходных картинок: распознавание лучше выполнить до такой оптимизации либо выбрать обычное сжатие с визуально без потерь.
Изображения: где обычно скрывается основной объём
PDF может содержать несколько типов растровых объектов, и для каждого назначается свой набор допустимых алгоритмов. Битональные изображения имеют один бит на пиксель и обычно представляют чёрно-белые страницы или маски. Индексированные используют палитру. Непрерывные включают оттенки серого, RGB и CMYK, то есть фотографии, сканы и большинство полноцветной графики. Одна общая настройка качества не действует одинаково на все классы: индекс JPEG влияет на сжатие с потерями непрерывных изображений, но не меняет битональные данные.
Размер несжатого растра определяется количеством пикселей и глубиной цвета. Изображение 600 × 800 пикселей содержит 480 000 пикселей; при 24-битном RGB ему требуется примерно втрое больше памяти, чем 8-битному серому изображению той же геометрии. Однако размер потока внутри PDF зависит ещё от фильтра и сложности содержания. Белый фон с несколькими линиями хорошо упаковывается без потерь, а шумный скан может оставаться крупным даже при умеренном разрешении.
Целевое разрешение и порог перерасчёта
Параметр разрешения задаёт, до какого DPI уменьшать изображение, а порог определяет, с какого фактического DPI вообще начинать перерасчёт. Это предотвращает бессмысленное изменение картинки, которая лишь немного превышает целевое значение. Например, при цели 150 DPI и пороге 210 DPI объект с эффективным разрешением 180 DPI останется нетронутым, а 300-DPI скан будет уменьшен. Встроенные профили используют согласованные значения; ручная настройка нужна, когда документ содержит необычно мелкие элементы.
Общие параметры -dr и -dt применяются к изображениям, а отдельные варианты позволяют разделить цветные, монохромные и битональные данные. Значение -1 отключает соответствующую операцию. Для сканов, которые затем должны пройти OCR, битональный слой лучше не уменьшать без теста: изменение сетки способно разрушить тонкие засечки, точки и разрывы между символами.
Фактическое DPI зависит от размера размещения на странице, а не только от пиксельных размеров файла. Одна и та же картинка 1200 × 1200 пикселей может иметь 600 DPI при ширине два дюйма и 150 DPI при ширине восемь дюймов. Поэтому диагностический список изображений полезнее, чем просмотр свойства размер в пикселях в графическом редакторе.
JPEG и индекс качества
JPEG подходит для фотографий и плавных цветовых переходов. Индекс качества задаётся параметром -q: меньшие значения усиливают сжатие, но повышают риск блоков, ореолов и потери мелких деталей. Проверять нужно не только средние по тону области, но и границы текста на фоне фотографии, сканы печатей, тонкие красные линии и участки с неоднократным предыдущим JPEG-сжатием. Повторная рекомпрессия уже повреждённой картинки может усилить артефакты даже при сравнительно высоком качестве.
Если исходный JPEG компактнее результата, обычный режим может сохранить исходный поток. Это объясняет ситуацию, когда пользователь указывает JPEG, но фильтр изображения в отчёте не меняется. Для обязательного перекодирования существует принудительный режим, однако его применяют только после сравнения размера и качества: он способен увеличить документ.
JPEG2000
JPEG2000 использует вейвлет-преобразование и может работать как с потерями, так и без потерь; качество 100 соответствует без потерь. Алгоритм полезен для некоторых архивных и печатных сценариев, но повышает минимальную версию PDF до 1.5 и поддерживается не одинаково хорошо старыми обработчиками. При обмене с производственным оборудованием проверяют не только просмотр на компьютере, но и RIP, систему допечатной подготовки и сервер преобразования, через который пройдёт файл.
Flate, LZW, CCITT и JBIG2
Flate — сжатие без потерь, подходящее для индексированной графики, схем, снимков интерфейса и изображений с повторяющимися областями. LZW также работает без потерь, но его допустимость зависит от целевого стандарта. CCITT Group 4 эффективно упаковывает чистые чёрно-белые страницы. JBIG2 часто даёт меньший поток на битональных сканах, однако при сжатии с потерями требует особенно строгой проверки символов, цифр и знаков; для юридических и бухгалтерских документов безопаснее выбирать режим, не допускающий подмены похожих глифов.
Для каждого класса изображений задаётся список допустимых фильтров. Оптимизатор пробует варианты и выбирает более компактный, а не безусловно первый указанный. Исключение соответствующего класса полностью запрещает его обработку. Такой подход удобен для смешанных документов: фотографии можно переводить в JPEG, палитровые диаграммы оставлять во Flate, а чёрно-белые страницы — в Group 4 или JBIG2.
Обрезка невидимых частей и снижение цветовой сложности
Параметр обрезки изображений удаляет пиксели, которые лежат за пределами реально видимой области. Это помогает, когда макет содержит большую фотографию, закрытую маской или обрезанную рамкой. Перед применением проверяют страницы со сложными прозрачностями и повторным использованием одного изображения в разных местах: физическое уменьшение ресурса допустимо только там, где программа может сохранить все видимые варианты.
Снижение цветовой сложности переводит изображение в более простой цветовой класс, когда это возможно без неприемлемой потери. Например, визуально серый скан, случайно сохранённый как RGB, может стать монохромным и занять меньше места. Для фирменных цветов, медицинских снимков и карт с цветовыми условными обозначениями такую операцию проверяют по эталону, потому что визуально близкие каналы могут нести смысловую информацию.
Диагностика изображений до оптимизации
Ключ -li выводит сведения об изображениях: номер объекта, ширину и высоту, число бит на компонент, цветовое пространство, эффективное разрешение, фильтр, несжатый и сжатый размер, коэффициент сжатия и имя файла для извлечения. Этот отчёт позволяет быстро найти несколько объектов, занимающих основную часть PDF. Если один скан имеет 600 DPI и десятки мегабайт, настройка шрифтов почти ничего не даст; если все растры маленькие, нужно искать дубли ресурсов или внедрённые гарнитуры.
Команда -xi извлекает изображения в текущий каталог, сохраняя JPEG-потоки как JPG, а остальные — обычно как TIFF. Это диагностическая функция, а не обязательный этап сжатия. Извлечённые файлы удобно просмотреть на артефакты и определить, какие объекты являются фотографиями, сканами текста, масками или техническими рисунками. После анализа каталог очищают, чтобы старые файлы не смешались с результатами следующего документа.
Шрифты: поднабор, объединение и осторожное удаление
PDF нередко содержит одну и ту же гарнитуру несколько раз: генератор внедряет отдельную копию на каждой странице или для каждого фрагмента. Параметр объединения совместимых программ шрифтов устраняет повторение, а поднабор оставляет только реально используемые глифы. В многостраничных отчётах это уменьшает размер и ускоряет печать, не меняя визуальное содержание.
Поднабор особенно эффективен, когда документ использует несколько символов из крупного Unicode-шрифта. Вместо полного файла с тысячами глифов сохраняется ограниченный набор. Однако повторное редактирование текста после такой обработки может стать сложнее: если редактору понадобится отсутствующий символ, он заменит гарнитуру или внедрит новую копию. Поэтому оптимизацию проводят после завершения содержательных правок.
Преобразование Type 1 в компактный CFF уменьшает соответствующие программы шрифтов. Удаление внедрённых стандартных шрифтов даёт дополнительную экономию, но создаёт зависимость от шрифтов системы просмотра. Если нужная метрика или начертание отсутствуют, строки могут сместиться, а специальные символы — замениться. Для договоров, форм и документов с точной версткой внедрение безопаснее экономии нескольких килобайт.
Ключ -lf выводит имя, тип, кодировку, признак CID, внедрение, поднабор и имя извлекаемого файла. По этим данным видно, где проблема действительно связана со шрифтами. Несколько строк с одинаковым именем и разными поднаборными префиксами указывают на возможное объединение; отсутствие внедрения предупреждает о риске изменения вида на другом компьютере.
Ключ -xf извлекает только внедрённые программы шрифтов. Полученные файлы предназначены для анализа и не обязательно пригодны для установки; ограничения лицензии гарнитуры сохраняются. Практическая задача извлечения — подтвердить тип и объём ресурса, а не создавать коллекцию шрифтов из чужих документов.
Удаление избыточных объектов и оптимизация ресурсов
PDF допускает многократное хранение одинаковых объектов и сохранение данных, которые больше не используются после правок. Опция удаления избыточности ищет такие элементы и сводит повторения, а оптимизация ресурсов очищает словари страниц и общие наборы ресурсов. Эффект особенно заметен в документах, собранных из множества отдельных файлов, созданных печатью из офисных приложений или многократно объединённых.
Неиспользуемый объект не всегда виден в обычном просмотре, но может занимать место. Старые миниатюры, альтернативные изображения, фрагменты веб-захвата, служебные данные приложения и мертвые объекты предыдущих изменений способны сохраняться внутри файла. Оптимизатор умеет удалять выбранные классы, однако выбор должен соответствовать назначению документа: то, что не нужно для печати, может быть важно для доступности, поиска или последующей обработки.
Сжатие потоков объектов и перестройка таблицы перекрёстных ссылок также влияют на размер. Иногда исправление повреждённой структуры восстанавливает пропущенные данные и делает результат немного больше. Поэтому увеличение файла не всегда означает ошибку; его оценивают вместе с диагностикой и фактом восстановления документа.
Что можно удалить и какие последствия проверить
Метаданные и словарь информации
Удаление XMP-метаданных и словаря информации уменьшает файл незначительно, но может убрать автора, тему, ключевые слова, даты, идентификаторы рабочего процесса и сведения о происхождении. Для публикации обезличенной копии это полезно, а для архива или системы электронного документооборота — часто недопустимо. Отдельный параметр позволяет задать значение в словаре информации; стандартные ключи синхронизируются с XMP, если запись уже существует.
Миниатюры и данные веб-захвата
Встроенные миниатюры страниц редко нужны современным просмотрщикам, которые генерируют их самостоятельно. Их удаление безопасно для большинства сценариев, но может замедлить первое открытие панели миниатюр в старом ПО. Данные веб-захвата относятся к происхождению сохранённых страниц и обычно не участвуют в отображении; перед очисткой специализированного архива проверяют, не использует ли их внутренний процесс.
Альтернативные изображения и выходные условия
Альтернативное изображение может предназначаться для другого способа вывода. Удаление экономит место, но лишает документ заранее подготовленного варианта. Output Intent описывает ожидаемые цветовые условия и особенно важен в полиграфии и стандартизованных архивах. Удалять его в файле, который пойдёт в печать или на валидацию PDF/A, нельзя без понимания цветового процесса.
Структурное дерево
Дерево структуры хранит логический порядок, роли заголовков, абзацев, таблиц и другой разметки. Оно увеличивает размер, но необходимо доступным PDF, корректному чтению экранными дикторами и некоторым операциям извлечения текста. Удаление структуры оправдано только для производной копии, где доступность и семантический порядок не требуются. В исходном документе такую очистку лучше не применять.
Статьи, ссылки и аннотации
Потоки статей задают последовательность чтения, ссылки обеспечивают переходы, аннотации содержат комментарии, штампы и заметки. Их можно удалить или предварительно свести с содержимым страницы. Сведение сохраняет внешний вид, но уничтожает интерактивность и редактируемость. Комментарий после сведения превращается в графику, а действие ссылки исчезает. Проверять нужно не только картинку страницы, но и ожидаемое поведение курсора.
Формы и подписи
Поля формы допускается свести с фоном и удалить. Это подходит для окончательной копии заполненной анкеты, но после обработки значения нельзя изменить, а сценарии и вычисления полей перестают работать. Внешний вид цифровой подписи тоже можно свести, однако криптографический статус и проверяемость подписанного документа при любой переработке требуют отдельного контроля. Оптимизацию подписанного оригинала следует считать созданием новой производной копии, а не сохранением подписи неизменной.
Линейзация для быстрого показа первой страницы
Линейный PDF располагает данные так, чтобы просмотрщик мог начать показывать первую страницу до получения всего файла. Параметры -ow и -owa сочетают оптимизацию с подготовкой для веб-просмотра, а -ol выполняет только линейзацию. Она не уменьшает документ гарантированно: служебные подсказки могут добавить примерно один–десять процентов, зато задержка до первой страницы при передаче по сети сокращается.
Линейзация не применяется к PDF 2.0. Если она необходима, нужно выбрать совместимую версию результата и не использовать возможности, которые вынуждают PDF 2.0. После обработки файл проверяют сервером, поддерживающим диапазонные запросы; если веб-сервер всегда отдаёт документ целиком, выгода от специального расположения объектов будет ограниченной.
Нельзя путать линейзацию с разбиением на страницы или потоковым преобразованием. Документ остаётся одним PDF, а выигрыш достигается порядком объектов и подсказками. Повторное сохранение в редакторе после оптимизации часто разрушает линейную структуру, поэтому этот этап ставят последним.
Цветовые преобразования и ICC-профили
Параметр -c задаёт преобразование цветов, а -cms — систему управления цветом. Для калиброванных пространств исходный ICC-профиль определяет преобразование. Для DeviceRGB, DeviceGray и DeviceCMYK требуются подходящие профили, описывающие предполагаемое устройство. При отсутствии явных файлов программа может использовать встроенные значения, но производственные задания лучше связывать с утверждёнными профилями организации.
По умолчанию ищутся профили sRGB для RGB и US Web Coated SWOP для CMYK. В Windows проверяется системный каталог цветовых профилей и подкаталог Icc рядом с исполняемым файлом. В Linux и macOS можно задать переменную PDF_ICC_PATH; также используется текущий рабочий каталог. Если задача запускается службой или планировщиком, текущий каталог может отличаться от интерактивной оболочки, поэтому путь лучше задавать явно.
Цветовое преобразование способно уменьшить размер, например при переводе фактически серого содержимого из RGB в Gray, но его основная цель — управляемый результат, а не рекордное сжатие. Преобразование CMYK в RGB удобно для экранной публикации, однако меняет печатные значения. Обратный переход в CMYK без профиля конкретной печати не гарантирует правильный суммарный красочный слой и передачу фирменных цветов.
Если цветовая функция не включена лицензией, профили, требующие преобразования, могут оказаться недоступны или вести себя иначе. В таком случае сначала проверяют лицензионные возможности, а не бесконечно меняют путь к ICC. Отдельная диагностика нужна для отсутствующего файла профиля, неподдерживаемого цветового пространства и ограничения ключа.
Пароли, шифрование и разрешения
Зашифрованный входной PDF открывают с помощью параметра пароля -pw. Неверное значение препятствует чтению файла. Пароль не следует записывать открытым текстом в общедоступный пакетный сценарий, журнал CI или историю команд. В автоматизации его передают через защищённое хранилище и ограничивают доступ к журналам процесса.
Для результата можно задать пароль владельца, пароль пользователя и набор разрешений. Пароль пользователя требуется для открытия, а пароль владельца управляет изменением ограничений. Права могут запрещать печать, копирование или редактирование, но их фактическое соблюдение зависит от программы просмотра. Шифрование защищает доступ, а не заменяет цифровую подпись и не доказывает неизменность содержимого.
Оптимизация расшифровывает внутренние потоки для обработки и записывает новый документ. Поэтому защищённые временные каталоги, права на выходной файл и удаление промежуточных копий входят в рабочий процесс. Если выход не создаётся, проверяют каталог, свободное место, право записи и конфликт имени, а уже затем параметры шифрования.
Пакетная обработка каталогов
Команда рассчитана на автоматизацию, но безопасный сценарий не должен сразу перезаписывать исходники. Надёжная схема создаёт временный результат, проверяет код возврата и ненулевой размер, при необходимости запускает дополнительный валидатор, затем атомарно заменяет файл. При ошибке временная копия удаляется, а оригинал остаётся на месте.
Пример для текущего каталога Windows CMD с суффиксом:
for %i in (*.pdf) do pdfoptimize -v -pr web "%i" "%~ni-opt.pdf"
В BAT-файле знак процента удваивается:
for %%i in (*.pdf) do pdfoptimize -v -pr web "%%i" "%%~ni-opt.pdf"
Пример для Unix shell:
for f in *.pdf; do pdfoptimize -v -pr web "$f" "${f%.pdf}-opt.pdf"; done
В реальном задании нужно учитывать вложенные каталоги, одинаковые имена, пробелы, символы национальных алфавитов и уже обработанные файлы. Отдельный каталог результата предотвращает повторное сжатие на следующем запуске. Журнал должен сохранять имя входа, размер до и после, выбранный профиль, код возврата и длительность. Это позволяет найти аномалии без ручного просмотра каждой строки консоли.
Для больших партий полезно сначала обработать репрезентативную выборку: текстовый отчёт, цветной скан, чертёж, форму, подписанный документ и файл с прозрачностями. Один профиль редко оптимален для всех классов. Классификация по содержимому даёт лучший результат: сканы направляют в MRC или обычное растровое сжатие, документы с векторной графикой — в режим сохранения качества, а файлы для сайта — в веб-профиль с линейзацией.
Практические рецепты
PDF для публикации на сайте
Начальная команда:
pdfoptimize -pr web -owa input.pdf output-web.pdf
После неё проверяют первую страницу при загрузке по сети, читаемость схем, кликабельность ссылок и поиск. Если документ состоит из сканов, дополнительно оценивают целевое разрешение. Если он уже мал, линейзация может слегка увеличить размер, но улучшить время до первого отображения.
Скан, который позже пройдёт OCR
Не используют MRC и агрессивное битональное уменьшение. Выбирают обычный профиль, ограничивают непрерывные изображения визуально без потерь или умеренным JPEG и сохраняют достаточное DPI. Сначала распознают несколько страниц и сравнивают число ошибок, затем масштабируют настройку на весь архив. Особое внимание уделяют таблицам, мелким индексам и машинным кодам.
Цветной скан после OCR
Если текстовый слой уже создан и проверен, MRC может дать значительную экономию. После обработки убеждаются, что текст по-прежнему выделяется и ищется, а позиционирование слоя совпадает с изображением. Извлечение оригинальных фотографий из такого PDF уже не является приоритетом, потому что слои MRC представляют страницу иначе.
Документ для печати
Используют профиль print, сохраняют Output Intent, внедрённые шрифты и достаточное разрешение. Цветовое преобразование выполняют только с утверждённым ICC-профилем. Тестовый лист печатают на том же тракте, где будет идти тираж; экранное сравнение не показывает растрирование, overprint и ограничения RIP.
Подготовка перед PDF/A
Оптимизацию запускают до конвертера PDF/A, не удаляют метаданные и структуру без требования, сохраняют внедрение шрифтов и избегают фильтров, запрещённых выбранным уровнем соответствия. Затем отдельный инструмент создаёт PDF/A, после чего документ валидируется. Повторная оптимизация созданного PDF/A может нарушить соответствие и потребовать новой проверки.
Финальная копия заполненной формы
Создают отдельный результат, сводят поля и аннотации только после подтверждения значений, затем проверяют внешний вид печати. Исходную интерактивную форму хранят отдельно. Цифровые подписи требуют особого процесса: простое сохранение нового файла не сохраняет криптографическую действительность исходного контейнера.
Конфиденциальный отчёт
Очищают метаданные и служебные объекты, проверяют вложения и комментарии, затем задают шифрование результата. Отдельно убеждаются, что чувствительный текст не остался в невидимом слое, форме или аннотации. Оптимизация не является средством редактирования с гарантированным уничтожением сведений; для удаления фрагментов нужна полноценная функция редактирования с последующей проверкой.
Разбор кодов возврата
Код 0 означает успешное завершение. Любое другое значение нужно считать ошибкой, даже если выходной файл появился. Сценарий не должен продолжать замену исходника только по факту существования результата: частичный или повреждённый файл тоже может быть создан до сбоя.
1— входной файл не удалось открыть. Проверяют путь, права, блокировку, нулевой размер и целостность PDF.2— выходной PDF не создан. Проверяют каталог, право записи, свободное место и допустимость имени.3— ошибка параметров, например лишний аргумент или недопустимое значение. Сверяют синтаксис и порядок опций.4— линейзация не выполнена. Проверяют версию PDF, структуру документа и совместимость выбранных параметров.10— ошибка лицензии. Проверяют наличие и действительность ключа, разрешённые функции и окружение службы.
В журнал выводят не только число, но и полный текст команды без секретов, стандартный вывод и поток ошибок. В CI ненулевой код должен завершать шаг с ошибкой. В пакетной обработке допустимо продолжить следующими файлами, но итог задания остаётся неуспешным, пока все сбои не разобраны.
Почему результат остаётся большим
Сначала определяют, что занимает место. -li показывает растр, -lf — шрифты. Если документ состоит из уже сжатых фотографий, удаление метаданных даст почти незаметный эффект. Если это чистый векторный чертёж, снижение DPI ничего не изменит. Настройка должна соответствовать фактическому содержимому.
Для изображений уменьшают порог и целевое DPI либо снижают качество JPEG/JPEG2000. Делать оба шага одновременно на первой пробе неудобно: непонятно, что вызвало ухудшение. Сначала меняют разрешение, сравнивают, затем качество. Для шрифтов включают поднабор и объединение; удаление внедрённых гарнитур оставляют последним средством.
Произвольно сжать PDF без потери информации невозможно. Если файл уже использует эффективные фильтры, любые дополнительные проценты потребуют ухудшения растра, отказа от функций или изменения совместимости. Практический предел определяется не желаемым числом мегабайт, а минимальным качеством и набором возможностей, которые нужно сохранить.
Почему выходной PDF может стать больше исходного
Линейзация добавляет служебные подсказки. Исправление повреждённой структуры может восстановить отсутствующие данные. Некоторые исходники содержат компактные объектные потоки, которые при перестройке записываются иначе. Принудительная рекомпрессия способна заменить маленький поток большим. Поэтому сам факт роста не доказывает дефект программы.
Для диагностики выполняют несколько контролируемых запусков: сначала профиль без принудительного перекодирования, затем только линейзацию, затем профиль без линейзации. Разница размеров показывает вклад этапов. Список изображений до и после выявляет объекты, у которых увеличился сжатый размер. Если рост связан с одним фильтром, его исключают из допустимого набора.
Не следует многократно оптимизировать один и тот же результат. Каждый цикл JPEG может добавлять артефакты, а перестройка уже упорядоченного файла редко даёт пользу. В архиве хранят оригинал и одну проверенную производную копию с записанными параметрами.
Когда выбранный алгоритм не применяется
Указание списка фильтров означает разрешение попыток, а не обязательный выбор конкретного фильтра. Если исходный поток меньше, программа сохраняет его. Если цветовой класс не совпадает, параметр другого класса на объект не действует. Если порог DPI не достигнут, перерасчёт не запускается. Если профиль исключает изображения, значения качества и разрешения остаются без эффекта.
Проверка выполняется отчётом -li после обработки. Сравнивают Filter, Resolution, CompressedSize и CompressionRatio. Если требуется именно перекодирование для совместимости, используют принудительный параметр и затем оценивают рост. Если цель — уменьшение, сохранение более компактного исходного потока является правильным поведением.
Ошибки цвета и поиск ICC-профиля
При сообщении об отсутствующем профиле сначала выясняют, какое устройство описывает исходное пространство и какой результат нужен. Случайный ICC-файл может убрать ошибку, но дать неверный цвет. Затем проверяют системный каталог, подкаталог Icc, переменную PDF_ICC_PATH и текущий рабочий каталог процесса.
Задание планировщика часто запускается под другой учётной записью и из другого каталога. Профиль, найденный в интерактивной консоли, может отсутствовать у службы. В журнал полезно вывести рабочий каталог и фактический путь к ICC, а не полагаться на относительное имя. На Windows права чтения системного каталога обычно доступны, но пользовательский профиль может быть установлен только для конкретной учётной записи.
Ограничения, которые важно учитывать заранее
Программа не редактирует текст и страницы в визуальном режиме. Она не предназначена для исправления опечаток, перестановки листов, рисования пометок или ручного выбора области на изображении. Все решения задаются профилями и параметрами, поэтому результат оценивают внешним просмотрщиком.
Встроенного OCR нет. Оптимизация может сохранить существующий текстовый слой, но не создаёт его из скана. Для распознавания нужен отдельный этап. MRC следует применять после OCR либо только там, где извлечение текста и исходных картинок не требуется.
Для нормальной работы требуется действительная лицензия; пробный ключ добавляет водяной знак в выходные файлы. Такой результат нельзя принимать за производственный. Цветовые преобразования могут зависеть от отдельной лицензионной возможности, поэтому набор доступных опций проверяют до проектирования пакетного процесса.
Инструмент может удалять объекты и сводить интерактивные элементы, но это не замена специализированному редактированию конфиденциальных данных. Невидимый текст, вложение или альтернативное представление нужно искать отдельной проверкой. Для юридически значимых документов сохраняют оригинал и фиксируют происхождение производной копии.
Совместимость с операционными системами
Команда доступна для Windows, Linux и macOS. В Windows поддерживаются клиентские системы начиная с Windows 7 и серверные выпуски начиная с Windows Server 2008; существуют x86- и x64-компоненты. MSI устанавливает x64, а ZIP содержит оба варианта. Для 32-разрядной системы нужен соответствующий файл из ZIP.
В Linux используются x64-сборки для распространённых семейств Red Hat, CentOS, Oracle Linux, Fedora и Debian, а также совместимых систем с достаточно новым ядром и набором GCC. После распаковки командой ldd pdfoptimize проверяют отсутствующие библиотеки; часто требуется пакет совместимости стандартной библиотеки C++. На macOS предусмотрена x64-сборка, поэтому на компьютерах Apple Silicon может понадобиться слой совместимости и отдельный тест производительности.
Наличие исполняемого файла не гарантирует одинаковое поведение окружения. Отличаются пути, права, кодировка оболочки, расположение ICC и правила экранирования. Пакетные сценарии для разных систем лучше хранить отдельно, сохраняя общий набор профилей и контрольные документы.
Сравнение 3-Heights PDF Optimizer с аналогами
| Программа | Лучше подходит для | Главное ограничение |
|---|---|---|
| 3-Heights PDF Optimizer | Автоматической тонкой настройки изображений, шрифтов, ресурсов, цветов и пакетных сценариев | Нет визуального редактора и встроенного OCR |
| PDF Commander | Ручного уменьшения и одновременного редактирования, сборки, защиты и просмотра документов | Меньше низкоуровневых параметров пакетной оптимизации |
| Adobe Acrobat Pro | Интерактивной проверки занимаемого места и настройки изображений, шрифтов, прозрачности и удаляемых объектов | Для массовой серверной автоматизации нужен отдельный процесс |
| Ghostscript | Сценариев преобразования и пересоздания PDF с готовыми профилями качества | Пересборка может заметно менять сложную графику и совместимость |
| qpdf | Структурных преобразований, линейзации, шифрования и проверки без рендеринга страниц | Не выполняет полноценный перерасчёт изображений |
| PDF24 Creator | Повседневного сжатия через понятный графический интерфейс и набор связанных PDF-инструментов | Меньше контроля над внутренними классами ресурсов |
3-Heights PDF Optimizer выбирают для воспроизводимого пакетного процесса, где важны отдельные правила для растра, шрифтов, структуры и цветов. PDF Commander удобнее, когда пользователь одновременно редактирует документ и хочет видеть страницы. Acrobat Pro подходит для экспертной ручной настройки и анализа занимаемого места. Ghostscript полезен в конвейерах пересоздания PDF, qpdf — для структурных операций без ухудшения изображений, а PDF24 Creator — для разовых задач с минимальной подготовкой.
Контроль качества после обработки
Проверка начинается с технических признаков: код возврата равен нулю, файл существует, имеет ненулевой размер и открывается. Затем сравнивают число страниц, размеры страниц, поворот, закладки, вложения, поля, аннотации, ссылки, поиск и извлечение текста. Если часть функций была намеренно удалена, это фиксируют в профиле задания.
Визуальное сравнение проводят по контрольным зонам: мелкий текст, диагональные линии, градиенты, полупрозрачности, печати, штрихкоды, сканы подписей и цветовые плашки. Для пакетного процесса полезно заранее сформировать набор страниц-эталонов и сохранять растровые превью до и после. Автоматическая разница пикселей выявляет крупные изменения, но не заменяет проверку смысла текста и интерактивности.
Размер оценивают вместе с качеством. Уменьшение на пять процентов при полном сохранении может быть ценнее уменьшения в десять раз с нечитаемыми таблицами. Для веба измеряют время до первой страницы, для печати — пробный вывод, для архива — валидацию целевого стандарта, для OCR — точность распознавания.
Параметры и результат хранят как воспроизводимую запись: хэш исходника, командную строку без секретов, хэш результата, размеры, дату, код возврата и версию контрольного профиля организации. Это позволяет доказать, каким способом создан файл, и повторить процесс после изменения требований.
Как подобрать настройки без лишних итераций
Сначала классифицируют документ. Если больше 80–90 процентов размера приходится на изображения, начинают с DPI и фильтров. Если растров мало, смотрят шрифты и ресурсы. Если размер уже небольшой, главной целью может стать линейзация или очистка метаданных, а не дальнейшее сжатие.
Затем выбирают профиль, ближайший к назначению, и меняют один параметр за запуск. Создают три результата: базовый профиль, повышенное качество и пониженное качество. Сравнение трёх точек быстрее показывает разумный диапазон, чем случайный перебор десятков комбинаций.
После выбора качества проверяют функции документа. Только затем включают удаление структуры, форм, аннотаций или Output Intent. Эти опции могут дать небольшую экономию, но существенно изменить поведение. Их нельзя смешивать с настройкой растра в одной необратимой пробе.
Финальный профиль испытывают на нескольких типичных файлах и одном тяжёлом исключении. Если один класс стабильно требует другого режима, вводят маршрутизацию вместо компромисса для всех. Например, цветные сканы идут в MRC после OCR, а технические чертежи — в print без потери тонких линий.
Ответы на практические вопросы
Почему команда с двумя файлами почти не уменьшила PDF?
Потому что базовый вызов проверяет чтение и запись, но не включает полноценный профиль. Добавьте -pr web, -pr print, -pr archive, -pr max или -pr mrc и затем настройте исключения.
Можно ли задать точный размер, например 5 МБ?
Нет прямого параметра целевого количества мегабайт. Размер зависит от содержимого. Подбирают DPI, пороги, качество и набор удаляемых данных, проверяя результат. Автоматический сценарий может делать несколько проходов с разными значениями, но каждый результат обязан пройти проверку качества.
Сохраняется ли возможность поиска по тексту?
Да, если текстовый слой не удалён и не превращён в растр. Оптимизация изображений обычно не затрагивает текстовые операторы. Однако удаление структуры влияет на логический порядок, а сведение форм превращает значения полей в графическое содержимое. После обработки выполните поиск по контрольным словам.
Создаёт ли программа PDF/A?
Нет. Она может уменьшить файл перед конвертацией, но соответствие PDF/A создаёт и проверяет отдельный инструмент. Не удаляйте внедрённые шрифты, метаданные и Output Intent, если они нужны выбранному профилю PDF/A.
Когда применять MRC?
Для цветных или серых сканов со смешанным фоном и контрастным передним планом, когда OCR уже выполнен или не нужен. Не используйте MRC как универсальную замену JPEG и не рассчитывайте извлечь из результата исходные фотографии без изменений.
Почему JPEG не заменил исходный фильтр?
Оптимизатор мог определить, что исходный поток меньше. Также объект мог относиться к другому цветовому классу или не достигать порога DPI. Проверьте отчёт -li. Принудительная рекомпрессия возможна, но иногда увеличивает файл.
Можно ли удалить пароль входного PDF?
При наличии правильного пароля документ открывается и записывается заново. Для выхода можно не задавать шифрование либо установить новые параметры. Соблюдайте права владельца документа и не записывайте пароль в открытые журналы.
Почему пробный результат содержит водяной знак?
Это ограничение оценочной лицензии. Для производственного файла требуется действительный ключ. Повторная оптимизация не удаляет лицензионный водяной знак надёжным и допустимым способом; обработку нужно выполнить заново с корректной лицензией.
Как понять, что проблема в лицензии?
Процесс завершается кодом 10. Проверьте ключ, доступность лицензии для учётной записи службы и наличие нужной функции, особенно цветовых преобразований. Ошибка не устраняется изменением DPI или фильтра.
Можно ли перезаписывать исходник напрямую?
Безопаснее нет. Сначала создайте временный результат, проверьте код возврата, размер, открытие и при необходимости валидатор. Только после успешной проверки заменяйте оригинал, сохраняя резервную копию.
Как сочетаются профиль и отдельные параметры
Командная строка читается как последовательность настроек: профиль заполняет сразу много значений, а явно указанные после него параметры уточняют конфигурацию. Поэтому удобная команда начинается с назначения и заканчивается исключениями. Например, веб-профиль можно сохранить как основу, но повысить качество фотографий, запретить удаление структуры и изменить порог перерасчёта. Если те же параметры поставить до профиля, профиль способен заменить часть значений, и результат окажется не тем, который ожидался.
Для воспроизводимости параметры группируют в одном порядке: профиль, разрешение и пороги, допустимые фильтры, качество, работа со шрифтами, удаление объектов, цвет, линейзация, защита и диагностический режим. Такой порядок не является синтаксическим требованием для каждой опции, но облегчает сравнение двух команд. Разница между профилями видна сразу, а случайно изменённый флаг не теряется среди паролей и имён файлов.
Значение -1 во многих настройках означает отключение операции или исключение класса из обработки. Его нельзя воспринимать как автоматически. Например, отрицательное целевое разрешение запрещает перерасчёт, а исключение типа изображения оставляет соответствующие потоки без обработки. Для автоматического выбора используют профиль и список допустимых фильтров, а не отрицательное значение.
При отладке выводят полную команду и запускают её на одном файле в подробном режиме -v. Если результат правильный, ту же строку переносят в сценарий без изменения порядка. Конфигурацию лучше хранить как шаблон с подстановкой входа и выхода, а не собирать из разрозненных фрагментов в нескольких местах кода.
Версия PDF и совместимость фильтров
Параметр -fv задаёт нижнюю границу версии результата от PDF 1.1 до PDF 1.7 или PDF 2.0. Итоговая версия не всегда совпадает с указанной: программа учитывает версию входного файла и требования применённых возможностей. Если вход уже PDF 1.5, указание 1.4 не понизит его автоматически до 1.4. Если выбран JPEG2000, файл должен остаться не ниже 1.5 независимо от желаемой границы.
Это поведение защищает от записи синтаксически несовместимого документа, но не гарантирует поддержку в целевой системе. Старый принтер или архивный шлюз может отвергать JPEG2000, JBIG2, прозрачности или PDF 2.0, хотя файл формально корректен. Совместимость обеспечивают ограничением допустимых фильтров и проверкой на реальном тракте, а не только числом в заголовке PDF.
Для обмена с устаревшим оборудованием сначала определяют максимальную версию и список разрешённых фильтров. Затем выбирают профиль и исключают всё, что поднимает требования. Если необходимо оставить PDF 1.4, фотографии кодируют JPEG или Flate, а JPEG2000 не включают. Для PDF 1.3 дополнительно проверяют прозрачность, потому что простое изменение номера версии не сводит прозрачные объекты.
Линейзация также зависит от версии: для PDF 2.0 она недоступна. Если приоритетом является быстрый показ первой страницы, результат формируют в совместимом диапазоне PDF 1.x. Если приоритетом служат возможности PDF 2.0, линейзацию отключают и оценивают скорость доставки другими средствами, например размером файла и настройкой сервера.
Эффективное разрешение и повторное использование одного растра
Отчёт по изображениям показывает разрешение относительно размещения на странице. Один и тот же объект может использоваться несколько раз с разным масштабом. Если крупная фотография одновременно служит маленькой миниатюрой и полноформатным изображением, оптимизатор должен сохранить качество для самого требовательного применения. Простое вычисление DPI по одному месту может быть недостаточным, поэтому такие страницы проверяют отдельно.
При сильном уменьшении растров важны не только буквы, но и геометрия линий. Скан таблицы с горизонтальными линиями толщиной в один пиксель может потерять часть сетки после интерполяции. Битональный режим с дизерингом помогает сохранить впечатление оттенков серого при уменьшении некоторых изображений, однако для чистого текста способен добавить точки. Вариант без дизеринга лучше для чётких глифов, а Floyd–Steinberg — для псевдополутоновых картинок; решение принимают по контрольным страницам.
Если изображение уже имеет низкое эффективное разрешение, уменьшать его нельзя. Порог должен быть заметно выше цели, иначе перерасчёт почти равного размера даст только дополнительную интерполяцию и перекодирование. Коэффициент около 1,4 между порогом и целью является практичной отправной точкой: объект 210 DPI уменьшается до 150, а 170 DPI остаётся нетронутым.
Для чертежей и снимков интерфейса важна резкость границ. Такие объекты часто лучше сохраняются во Flate без потерь, даже если JPEG даёт меньший файл. Фотографии, наоборот, обычно переносят JPEG хорошо. Разделение непрерывных и индексированных классов позволяет не выбирать один компромисс для всей страницы.
Подготовка сканов с существующим текстовым слоем
Сканированный PDF после OCR обычно содержит изображение страницы и невидимый текст. Сжатие растра не обязано удалять текст, но изменение геометрии изображения должно сохранять совпадение координат. После обработки выделяют несколько строк мышью, копируют их в текстовый редактор и проверяют, что выделение не смещено относительно букв. Также ищут редкие слова и номера, расположенные в углах страницы.
Если текстовый слой создан поверх цветного скана, обычный профиль с умеренным JPEG часто безопаснее MRC. MRC разлагает непрерывное изображение на части и может усложнить повторное распознавание. Его используют, когда OCR уже завершён, качество текста подтверждено и дальнейшее извлечение исходного растра не требуется.
Битональные страницы требуют отдельного теста. Group 4 хорошо сохраняет точные чёрно-белые пиксели и подходит для чистых факсов и документов. JBIG2 может дать меньший размер; для критичных чисел выбирают режим без потерь и сравнивают страницы с похожими символами: 0 и O, 1 и l, 5 и S, десятичные разделители и мелкие надстрочные знаки.
После оптимизации оценивают не только процент распознанных слов, но и порядок текста. Удаление структурного дерева может ухудшить чтение колонок и таблиц, хотя поиск останется доступным. Для документов, которые будут индексироваться или читаться вспомогательными технологиями, структуру сохраняют.
Проверка форм, аннотаций и действий
Интерактивный PDF может содержать поля, кнопки, сценарии, ссылки, всплывающие заметки и файловые вложения. Простое визуальное сравнение страниц не показывает потерю поведения. До оптимизации составляют карту функций: какие поля должны редактироваться, какие значения вычисляются, куда ведут ссылки, какие аннотации видны только при наведении и какие вложения нужны получателю.
Сведение формы полезно для финальной копии, потому что внешний вид перестаёт зависеть от просмотрщика и шрифта поля. Однако значения превращаются в содержимое страницы, кнопки и вычисления исчезают. Если заполненная форма должна оставаться доступной для машинного извлечения, сведение неприемлемо. Тогда сохраняют поля и ограничивают оптимизацию изображениями, шрифтами и ресурсами.
Сведение аннотаций отличается от их удаления. При сведении видимая внешность штампа или комментария записывается на страницу, но редактирование и всплывающее содержимое исчезают. При удалении пропадает и внешний вид. Поэтому для согласованной копии чаще используют сведение, а для очищенной публикации — удаление, предварительно убедившись, что аннотация не содержит обязательного согласования.
Ссылки могут быть отдельными аннотациями поверх текста. Если удалить аннотации целиком, текст останется синим и подчёркнутым, но переход перестанет работать. Контроль выполняют кликом по нескольким внутренним и внешним переходам, а не только осмотром цвета.
Работа с цифровыми подписями
Цифровая подпись защищает точную последовательность байтов или разрешённые последующие изменения. Оптимизация перестраивает объекты, изображения, шрифты и таблицу перекрёстных ссылок, поэтому исходная подпись обычно перестаёт подтверждать новый файл. Даже если внешний вид подписи сохранён, криптографическая проверка может показать изменение документа.
Правильный процесс зависит от цели. Если нужен компактный документ для последующего подписания, оптимизацию выполняют до подписи. Если подписанный оригинал уже получен, его сохраняют без изменений, а оптимизированную копию маркируют как производную. Сведение внешности подписи допустимо только для визуальной копии и не заменяет проверяемую подпись.
После любой обработки открывают панель подписей в независимом проверяющем ПО. Проверяют статус сертификата, цепочку доверия, время и перечень изменений. Отсутствие видимого предупреждения на странице ничего не доказывает: изображение подписи может остаться, а криптографическая связь — исчезнуть.
Запуск в планировщике Windows
Задание планировщика часто работает под служебной учётной записью с другим PATH, профилем пользователя и доступом к сетевым ресурсам. В сценарии лучше указывать полный путь к pdfoptimize.exe, полный путь к ICC и абсолютные каталоги входа и выхода. Сетевой диск, подключённый как буква в интерактивном сеансе, может не существовать в задании; используют UNC-путь и отдельные права.
Каталог запуска задают явно. От него зависят относительные пути, поиск ICC и место извлечения шрифтов или изображений. Журнал направляют в каталог, доступный служебной учётной записи, и ограничивают его размер. Пароли и лицензионный ключ в открытом журнале не выводят.
После запуска проверяют переменную ERRORLEVEL. Нулевой код разрешает дальнейшую проверку и перенос файла, ненулевой — записывает ошибку и оставляет исходник. Если задание обрабатывает много документов, оно может продолжить цикл, но итоговый статус должен отражать число неудач.
Антивирус и индексатор способны временно блокировать только что созданный файл. Сценарий должен отличать краткую блокировку от ошибки оптимизатора и не удалять оригинал до успешного открытия результата. Для больших файлов также контролируют свободное место: одновременно могут существовать вход, выход и временные данные.
Запуск в Linux и macOS
После распаковки x64-файл проверяют командой ldd в Linux. Строка not found указывает на отсутствующую динамическую библиотеку. Устанавливают пакет из репозитория системы, а не копируют случайный файл в каталог программы. Затем добавляют символическую ссылку или используют абсолютный путь.
В shell-циклах имена файлов всегда заключают в двойные кавычки. Конструкция for f in *.pdf безопаснее разбора вывода ls, но не охватывает вложенные каталоги. Для рекурсивного поиска применяют find с нулевыми разделителями, чтобы пробелы и переводы строк в имени не разрушили команду.
Права результата задаются маской процесса и каталогом. Если PDF должен читаться другой службой, после создания проверяют владельца и режим. В контейнере ICC и лицензия должны быть доступны внутри файловой системы контейнера; наличие на хосте не помогает, пока каталог не подключён.
На macOS x64-компонент проверяют на конкретной архитектуре. Если используется слой совместимости, измеряют время на типичных файлах и не предполагают равную скорость с нативной сборкой. Путь к приложению и ICC лучше хранить в переменных сценария, чтобы обновление каталога не требовало правки каждой команды.
Безопасность временных и выходных файлов
Оптимизация создаёт новый документ, который может содержать те же конфиденциальные сведения, что и оригинал. Временный каталог размещают на защищённом томе, ограничивают права и очищают после успешного или аварийного завершения. Общая папка с правом чтения для всех пользователей не подходит для договоров, медицинских данных и кадровых документов.
Имя временного файла должно быть уникальным. Простая приставка temp.pdf создаёт гонку при параллельной обработке. Используют случайный идентификатор или безопасный системный механизм, а после записи выполняют атомарную замену имени. Это предотвращает получение половины файла другим процессом.
Удаление метаданных не гарантирует удаления содержимого. Проверяют вложения, формы, аннотации, невидимый текст, альтернативные изображения и старые объекты. Для настоящего обезличивания используют инструмент редактирования, который удаляет выбранные фрагменты, затем оптимизацию и независимый поиск по байтам и извлечённому тексту.
Шифрование результата выполняют после выбора параметров качества в том же проходе. Пароль хранят отдельно от файла. Разрешения PDF рассматривают как указание просмотрщику, а не как криптографическую защиту от владельца ключа или специализированного ПО.
Матрица испытаний для производственного профиля
Один тестовый файл не покрывает все ветви PDF. Минимальный набор включает офисный документ с внедрёнными шрифтами, цветной скан, битональный факс, технический чертёж, презентацию с прозрачностями, интерактивную форму, файл с аннотациями, документ с закладками и подписанный оригинал. Для каждого заранее фиксируют свойства, которые должны сохраниться.
Результаты записывают в таблицу: размер до и после, время, код возврата, версия PDF, число страниц, поиск текста, формы, ссылки, подписи, цвет, печать и визуальная разница. Профиль допускают к массовой обработке только после прохождения всех обязательных столбцов. Если один класс не проходит, вводят отдельный профиль, а не ослабляют требования для остальных.
Регрессионный набор запускают после изменения качества, DPI, фильтров, ICC, лицензии или операционной системы. Даже небольшое изменение может затронуть другой класс изображения. Сохранённые хэши эталонных входов гарантируют, что сравниваются те же документы.
Для оценки размера используют медиану и крайние значения, а не только средний процент. Профиль, который обычно экономит 40 процентов, но иногда увеличивает файл вдвое, требует правила исключения. Журнал с отчётами -li и -lf помогает объяснить такие выбросы.
Оптимизация технических чертежей и схем
Чертёж часто сочетает векторные линии, текст и вставленные растровые фрагменты. Основная графика может почти не реагировать на DPI, потому что линии описаны векторными операторами. Экономия достигается удалением повторяющихся ресурсов, объединением шрифтов и обработкой только вставленных изображений.
JPEG опасен для скриншотов схем и растровых линий: вокруг контрастных границ появляются ореолы. Для индексированной графики оставляют Flate, а цветные фотографии внутри отчёта обрабатывают как непрерывные изображения. Такой раздельный набор фильтров сохраняет подписи и условные обозначения.
Перед печатью проверяют толщину линий на реальном масштабе и корректность штриховки. Изменение цветового пространства может превратить различимые экранные цвета в близкие печатные тона. Output Intent сохраняют, если он описывает целевой процесс.
Если чертёж содержит нестандартные шрифты, их не удаляют. Поднабор и объединение безопаснее, чем зависимость от гарнитур рабочего места. Внешний вид размеров и специальных символов проверяют на компьютере без установленных исходных шрифтов.
Оптимизация презентаций и маркетинговых материалов
Презентации обычно содержат крупные фоновые изображения, прозрачности, тени и повторяющиеся логотипы. Список изображений быстро показывает, используются ли одни и те же ресурсы повторно или каждый слайд хранит отдельную копию. Объединение ресурсов и снижение DPI фоновых фотографий дают основной выигрыш.
Прозрачности и градиенты проверяют на полосы и изменение цвета. JPEG подходит фотографиям, но логотипы и текстовые вставки должны оставаться во Flate или векторе. Если слайд был целиком растрирован до PDF, оптимизатор уже не сможет отделить текст от фона; тогда выбирают компромисс по качеству всей страницы.
Для веб-публикации включают линейзацию и проверяют первую страницу. Для раздаточной печати используют print и сохраняют более высокое разрешение. Один и тот же исходник разумно обрабатывать двумя профилями, а не пытаться сделать универсальный файл минимального размера.
Как интерпретировать отчёт по шрифтам
Поле FontName показывает имя без поднаборного префикса, FontType — тип программы, Encoding — способ кодирования, IsCID — принадлежность к CID, IsEmbedded — наличие внедрённого файла, IsSubsetted — поднабор. FileName появляется для ресурса, который можно извлечь. Эти поля позволяют отделить повторные копии одной гарнитуры от разных начертаний.
Несколько записей Arial с разными типами или кодировками нельзя автоматически считать дубликатами. Объединение возможно только для совместимых программ и наборов глифов. Оптимизатор принимает решение сам; задача пользователя — не удалять шрифт только по похожему имени.
Если IsEmbedded равен Non-embedded, уменьшить размер удалением программы невозможно — её уже нет. Напротив, документ зависит от шрифта просмотрщика. Для надёжного обмена такой файл лучше исправить специализированным средством внедрения, а не пытаться дополнительно удалить гарнитуры.
Большой полностью внедрённый CJK-шрифт может занимать значительную долю файла. Поднабор особенно полезен, но проверяют все символы, вертикальное письмо и поиск. После оптимизации не рекомендуется редактировать текст: новые глифы могут отсутствовать.
Как интерпретировать отчёт по изображениям
ObjectNumber позволяет сопоставить ресурс с извлечённым файлом. Width и Height показывают пиксели, BitsPerComponent — глубину компонента, ColorSpace — цветовой класс, Resolution — эффективное DPI, Filter — текущий алгоритм, ImageSize — несжатый объём, CompressedSize — поток в PDF, CompressionRatio — отношение сжатого объёма к несжатому.
Низкий CompressionRatio означает, что изображение уже хорошо сжато. Повторное кодирование может мало помочь. Высокое значение указывает на несжатый или плохо сжатый объект, но сначала учитывают содержание: шумная фотография и простая диаграмма при одинаковом размере требуют разных фильтров.
Очень высокое DPI у маленького размещения — кандидат на уменьшение. Низкое DPI с большим CompressedSize чаще требует смены фильтра или снижения качества, а не перерасчёта. Несколько объектов с одинаковой геометрией и размером могут быть повторными копиями; оптимизация ресурсов способна объединить их.
После обработки отчёт запускают снова. Снижение CompressedSize подтверждает эффект, изменение Filter показывает выбранный алгоритм, а Resolution — перерасчёт. Если размер всего PDF не уменьшился пропорционально, проверяют шрифты, структуру и добавленную линейзацию.
Итоговый рабочий порядок
- Сделайте копию исходного PDF и определите назначение результата.
- Получите отчёты
-liи-lf, чтобы увидеть главные причины объёма. - Выберите ближайший профиль и создайте отдельный выходной файл.
- Изменяйте по одной группе параметров: сначала изображения, затем шрифты, затем удаление функций.
- Проверьте код возврата, открытие, страницы, текст, ссылки, формы, подписи и цвет.
- Сравните качество на контрольных участках и зафиксируйте размер.
- Для веба проверьте линейзацию, для печати — пробный вывод, для архива — валидацию, для OCR — точность распознавания.
- Сохраните команду и хэши вместе с результатом, а массовую замену выполняйте только после успешной выборки.
3-Heights PDF Optimizer особенно полезен там, где сжатие должно быть повторяемым и объяснимым: каждый выигранный мегабайт можно связать с конкретным решением о разрешении, фильтре, шрифте, ресурсе или функции PDF. Лучший результат даёт не самый агрессивный профиль, а конфигурация, которая уменьшает фактическую причину объёма и одновременно сохраняет все свойства, необходимые следующему этапу работы.