После объединения форма перестала заполняться
Скажем прямо: это наша недоработка, а не свойство формата. Заполняемый бланк хранит два разных набора данных — рамки полей лежат при страницах, а общий перечень полей документа лежит в его корневой записи. Объединение копирует страницы и создаёт новый документ с чистым корнем, поэтому перечень не переезжает. Рамки на месте, списка полей нет, и просмотрщик больше не считает файл заполняемым.
Коротко о цифрах
- Где живут поля
- рамки — при страницах, общий перечень — в корневой записи документа
- Что копирует объединение
- только страницы со всем, на что они ссылаются вниз
- Статус проблемы
- известная недоработка объединения, а не ограничение PDF
- Обход
- свести заполненный бланк до слияния — значения станут содержимым страницы
- Отчёт сведения
- поля, оставшиеся интерактивными, перечисляются по именам
Почему рамки остались, а заполнение исчезло
Копирование страницы забирает с собой её собственное имущество: содержимое, ресурсы, шрифты и список приложенных к ней объектов, включая рамки полей. Всё это устроено как ссылки от страницы вниз, и копировщик проходит по ним послушно. Общий перечень полей устроен наоборот — он висит в корне документа и ссылается на страницы сверху вниз, а корень у нового файла свой, пустой.
Просмотрщик ищет заполняемые поля именно в этом перечне. Не найдя его, он видит на страницах набор рамок неизвестного назначения: показать их он может, а связать со значениями, порядком обхода по табуляции и проверками — уже нет. Внешне бланк выглядит прежним, а нажатие по полю ничего не открывает.
Рабочий порядок действий
- Заполните бланк до объединения — в той программе, где он открывается как форма.
- Сведите заполненный документ: значения превращаются в обычное содержимое страницы и перестают зависеть от перечня полей.
- Проверьте отчёт сведения. Поля, которые не удалось свести, перечисляются поимённо и остаются интерактивными — это честнее, чем испортить документ ради красивого итога.
- Объедините сведённый бланк с остальными файлами: терять в нём уже нечего, вид сохранится точно.
- Откройте результат и сверьте значения в полях — сведение рисует их ровно так, как они выглядели, и расхождение сразу заметно.
Что переживает объединение, а что нет
- Переживают: содержимое страниц, встроенные шрифты, изображения, повороты страниц и приложенные к страницам объекты.
- Не переживают: общий перечень полей формы, закладки, именованные точки перехода и действие при открытии документа.
- Порядок страниц определяется порядком файлов в списке, а не их именами: список перетаскивается мышью.
- Каждый исходник копируется одним заходом целиком — иначе общие ресурсы дублировались бы на каждой странице и файл раздувался бы в разы.
- Сведение бланка до слияния — единственный обход, который не требует ничего, кроме наших инструментов.
Частые вопросы
Можно ли объединить два заполняемых бланка и сохранить оба как формы?
Нашим объединением — нет. Перечень полей у результата будет пустым, поэтому оба бланка перестанут заполняться. Если интерактивность нужна обоим, храните их отдельными файлами и отправляйте вместе.
Значения в полях были введены. Они пропали или просто не видны?
Зависит от документа. Если у поля был нарисованный вид, значение видно как часть страницы; если бланк рассчитывал, что вид построит просмотрщик по перечню полей, показывать станет нечего, и поле выйдет пустым.
Помогает ли сведение уже объединённого файла?
Почти нет. Сводить нечего: перечня полей в документе не осталось, а рамки без него не связаны со значениями. Сведение нужно делать до объединения, пока бланк ещё является формой.
Другие операции тоже ломают формы?
Ломают все, которые собирают новый документ из копий страниц: разделение, извлечение, удаление страниц, раскладка нескольких страниц на лист. Поворот, обрезка, водяной знак и нумерация правят исходный документ и перечень полей сохраняют.