Сведение (flatten) PDF
в вашем браузере.
Зафиксируйте интерактивные поля форм и аннотации как статический контент. Получатели видят значения, но не могут их менять. Без загрузки.
Убедитесь сами: откройте DevTools → вкладку Network → перетащите файл. Никаких загрузок на сервер не произойдёт.
Три шага. Ваш файл не покидает эту вкладку.
Перетащите заполненный PDF
Выберите заполненную форму. Файл загружается в память браузера, а не на сервер.
Нажмите «Свести»
Мы впекаем значения полей и аннотации в саму страницу и убираем интерактивный слой.
Скачайте заблокированную копию
Результат выглядит так же, но получатели не смогут изменить значения. Оригинал не меняется.
Запечь форму в страницу
Причины свести PDF (flatten) обычно про заморозку того, что сейчас видно. Налоговая форма, заполненная вводом в PDF, идёт бухгалтеру — получатель должен видеть ответы, но не иметь возможности их менять. Подписанное соглашение завершено заполненным полем подписи — пересылая его дальше, поле не должно оставаться кликабельным элементом, который кто-то перепишет. Сканированный документ вернулся с аннотациями и штампами, и должен пойти дальше без редактируемого слоя аннотаций. Печатный буклет был свёрстан в InDesign с интерактивными виджетами форм, которые при подготовке к печати должны выглядеть статичными плейсхолдерами. Задача здесь маленькая и предсказуемая: взять PDF с полями форм или аннотациями и преобразовать их текущее визуальное состояние в постоянное содержимое страницы.
То, что вы получаете обратно — PDF, который выглядит на экране так же, но больше не имеет интерактивных элементов. Каждое заполненное поле сохраняет своё значение как статичный текст. Каждое пустое становится тем, что показывал его фон (часто серый прямоугольник, иногда вообще ничего видимого). Аннотации и штампы аналогично запекаются в страницу.
Что на самом деле делает flatten
PDF хранит поля формы как отдельный слой поверх страницы. Сама страница не знает, что в форме; виджет поля накладывается над ней при просмотре, и текущее значение поля рисуется в видимой области. Flatten схлопывает этот слой — обходит каждое поле, фиксирует его визуальное состояние в момент операции, рисует этот снимок как обычное содержимое страницы (текст, линии, чекбоксы как пути) и затем удаляет само определение формы.
Результат — одна непрерывная статичная страница, где видимое и есть нарисованное. В документе больше нет «формы». Читатель не догадается, что поля когда-то были, и ни один PDF-инструмент не отредактирует значения без OCR с нуля.
Что сводится, а что нет
- Поля форм (AcroForm). Текстовые поля, чекбоксы, радиокнопки, выпадающие списки, listbox, поля подписи, кнопки. Всё это сводится — текущее значение или выбор становятся статичным содержимым страницы.
- Пустые поля сохраняют внешний вид. Незаполненный текстовый бокс сохраняет рамку и (часто) линию-плейсхолдер; визуал остаётся как рисунок. Невыбранный чекбокс — пустой квадратик.
- Вычисляемые поля фиксируют текущее значение. Поля с формулами (фича Acrobat Pro) замораживаются на отображаемом значении — формула после flatten исчезает.
- Аннотации могут запечься, а могут и нет. Заметки, выделения и штампы зависят от viewer'а, который их написал; flatten() в pdf-lib целит именно в AcroForm. Если нужно убрать и аннотации — правильный путь полный экспорт из исходного просмотрщика.
- Существующее статичное содержимое не трогается. Текст, изображения, вёрстка, закладки переносятся без изменений.
Что переживёт операцию, а что нет
- Видимое содержимое остаётся прежним. Текст, изображения, вёрстка, шрифты и значения форм такими, как выглядели в момент flatten — сохраняются точно.
- Закладки, ссылки, структура страниц переносятся. Flatten нацелен на слой формы, а не на структуру документа.
- Интерактивность формы исчезает. Никаких больше кликабельных полей, выпадающих выборов, переходов «tab по полям». В этом и смысл операции.
- Цифровые подписи аннулируются. Любая модификация документа, включая flatten, ломает связку подписи. Если документ подписан и подпись должна остаться валидной — не сводите; продублируйте файл и сведите дубликат.
- Операция односторонняя. После flatten нет «un-flatten». Определение формы исчезло. Для повторного редактирования придётся создавать поля с нуля в PDF-редакторе с поддержкой авторинга форм.
Если что-то выглядит не так
- «Ничего не произошло» — нет полей для сведения. В PDF не было AcroForm. Инструмент в этом случае пере-сохраняет файл как есть; результат функционально идентичен входу. Чтобы проверить наличие полей, откройте в Adobe Reader и посмотрите «Highlight Existing Fields» — если ничего не подсвечивается, сводить нечего.
- Часть аннотаций не запеклась. Проход form.flatten() сводит только AcroForm-виджеты. Аннотационные overlay (стики, маркер, рисунок от руки) требуют другой операции. Для них переэкспортируйте из исходного просмотрщика или сначала консолидируйте через edit-pdf.
- Заполненные значения после сведения выглядят не так. Сведённое представление фиксирует то, что рисовалось в момент операции. Если в форме была подмена шрифта или поле отображалось неожиданно — снимок захватывает это. Сначала проверьте исходный PDF в просмотрщике — flatten сохранит то, что вы видите там.
- PDF зашифрован. Сначала прогоните через unlock-pdf; зашифрованные PDF не модифицируются.
Частые причины свести
- Отправить заполненную форму тому, кто не должен её менять. Налоговая декларация бухгалтеру, контракт юристу, кадровая форма в HR — flatten фиксирует значения.
- Объединить заполненные формы в один архивный документ. Разные копии одной формы, заполненные разными людьми, склеиваются в пакет. Сведите каждую перед объединением, чтобы каждая копия сохранила значения без столкновения ID полей.
- Подготовка к печати или публичной публикации. Печатные PDF всё равно не учитывают интерактивность, но просмотрщик, открывающий файл перед печатью, может показывать поля иначе, чем печатный вывод. Сведите заранее, чтобы экран и страница совпали.
- Убрать заполняемое поведение из шаблона. Шаблон со sample-значениями в полях, готовый к выпуску как законченный пример. Flatten замораживает значения.
Практические заметки
- Сводите последним шагом. Если нужно добавить нумерацию страниц, водяной знак или сжатие — делайте это первым, пока документ ещё редактируем. Сводимый шаг закрывает изменения, которые зависят от знания о форме.
- Сохраните оригинал. Сведённая версия заменяет функциональность, которую не вернуть. Сохраните редактируемый источник на случай обновлений значений, потом пересведите.
- Сначала проверьте на одной странице. Если документ большой и вы не уверены, как ляжет bake — отделите одну страницу через split-pdf, сведите образец, проверьте результат, затем сведите весь документ.
- Исходный файл остаётся нетронутым. Скачивается новый сведённый PDF; источник на диске не меняется.
Что происходит с вашим файлом
Сведение работает в браузере. Откройте DevTools и наблюдайте вкладку Network во время операции — никаких исходящих запросов с содержимым файла. PDF остаётся на диске; сведённая версия — это новая загрузка рядом.
Частые вопросы
Что значит «свести» (flatten)?
Сведение превращает интерактивные слои — поля формы, аннотации, комментарии — в статичный контент страницы. Визуально ничего не меняется, но значения становятся частью страницы и больше не редактируются.
Зачем сводить PDF?
Чтобы отправить финальную, нередактируемую версию: подписанный договор, заполненную налоговую форму, утверждённое предложение. Сведение защищает значения от случайных и умышленных правок.
Документ будет выглядеть иначе?
Нет — сведённые страницы выглядят так же. Изменение структурное, не визуальное: поля становятся впечённым текстом, аннотации — впечёнными отметками.
Работает ли на PDF без форм?
Да. Если полей и аннотаций нет, сведение — это, по сути, «пересохранение». Особенно полезно, когда нужно заблокировать поля формы или заметки.
Куда уходит мой файл?
Никуда. Сведение происходит полностью в этой вкладке. Проверьте в DevTools → Network — загрузки не происходит.