Что именно теряется при сжатии
Сжатие меняет документ дважды. Сначала каждая страница перерисовывается в картинку, и вместе с этим исчезает текстовый слой: поиск, выделение и копирование в результате не работают, переносить их просто некому. Потом картинка кодируется в JPEG, и из неё уходят высокие частоты — волосяные линии, кольцевая надпись на печати, границы полос штрихкода. Число страниц, их порядок и размер листа не меняются: на 186 DPI лист A4 занимает 1537×2175 пикселей, но остаётся листом A4.
Коротко о цифрах
- Из чего состоит результат
- по одной JPEG-картинке на страницу
- Текстовый слой
- не переносится: поиск и выделение в результате не работают
- Метаданные
- новый документ создаётся пустым, заголовок и автор не копируются
- Порядок деградации
- линия 0,25 пт → штрих печати → границы штрихкода → сноска 6 пт → текст 12 пт
- Что остаётся точно
- число страниц, их порядок, размер листа и видимый поворот
Что исчезает вместе со структурой
- Текстовый слой. В результате нет символов — есть их изображение, поэтому поиск по документу и выделение мышью перестают работать.
- Закладки и оглавление: они ссылались на объекты старого документа, а новый собран с нуля.
- Внутренние и внешние ссылки — по той же причине: кликать становится не по чему.
- Поля форм и их значения превращаются в нарисованные прямоугольники с текстом; заполнить такую форму заново уже нельзя.
- Метаданные: новый документ создаётся пустым, заголовок, автор и ключевые слова в него не переписываются.
- Криптографическая подпись. Файл пересобран побайтово, и проверка целостности после этого не проходит — картинка подписи при этом остаётся на месте.
В каком порядке рассыпаются детали
Деградирует не «всё понемногу». Первой уходит самая тонкая геометрия: линия толщиной 0,25 пункта при 186 DPI занимает 0,65 пикселя, то есть меньше одного, и рисуется полупрозрачной ещё до всякого JPEG. Следом идёт штрих печати в четверть миллиметра — 1,8 пикселя, — и граница полосы штрихкода шириной 0,33 мм, это 2,4 пикселя.
Основной текст держится дольше всех и потому ничего не показывает: буква кеглем 12 пунктов на том же 186 DPI получает 31,0 пикселя высоты и остаётся безупречной там, где печать уже поплыла. Отсюда правило проверки: смотреть надо на печать и штрихкод, а не на абзац.
Что не теряется
- Число страниц и их порядок — документ собирается страница за страницей.
- Размер и пропорции листа: картинка вписывается в исходные размеры страницы в пунктах.
- Видимый поворот: страница с ключом /Rotate рисуется так, как её показывает просмотрщик.
- Общий вид вёрстки — глазами результат отличается от исходника только резкостью деталей.
Что делать, если терять нельзя
- Сначала попробуйте оптимизацию: она переставляет объекты внутри файла, не трогая ни шрифты, ни вектор.
- Если нужен только текст, выгрузите его в TXT до сжатия — потом извлекать будет неоткуда.
- Уберите лишние страницы: удаление половины документа снимает половину веса без потери качества оставшихся.
- И только после этого растеризуйте, оставив исходник у себя до тех пор, пока получатель не подтвердит приём.
Частые вопросы
Можно ли вернуть текстовый слой после сжатия?
Только распознаванием, и это будет новый текст, собранный по картинке, с неизбежными ошибками в цифрах и фамилиях. Прежний слой не восстанавливается, поэтому исходник имеет смысл сохранить до конца дела.
Останется ли подпись на документе?
Нарисованная подпись останется: она была пикселями и пикселями осталась. Криптографическая подпись перестанет проверяться — файл пересобран целиком, а проверка сверяет байты, а не внешний вид страницы.
Почему текст выглядит на месте, а поиск по нему не работает?
Глаз видит изображение букв, а поиск ищет символы, которых в результате нет. Это две разные вещи внутри файла, и растеризация оставляет первую, убирая вторую без всякого предупреждения.
Сохранятся ли закладки и оглавление документа?
Нет. Закладки указывают на объекты исходного документа, а результат собирается заново из одних картинок, поэтому указывать им становится не на что и они не создаются вовсе.