Как заполнить PDF-форму
Бланки в PDF бывают двух видов, и путь для них разный. Настоящая форма с интерактивными полями заполняется прямо в просмотрщике — Acrobat Reader, Preview, встроенный просмотрщик браузера, — а потом её стоит запечь, чтобы значения нельзя было изменить. Плоский бланк, где поля просто нарисованы линиями, заполняют надписями поверх страницы. Редактора самих интерактивных полей у нас нет, и обещать его мы не будем.
Коротко о цифрах
- Редактор интерактивных полей
- отсутствует: значения вписываются поверх страницы
- Запекание
- поле применяется, только если разрешились все его виджеты
- Поля с кириллицей
- перерисовываются встроенным Roboto вместо WinAnsi Helvetica
- Незапечённые поля
- остаются интерактивными и называются поимённо
- Ссылки
- при запекании не удаляются: у них нет внешнего вида, а навигация нужна
Как понять, какой у вас бланк
- Щёлкните по строке, куда надо вписать значение. Появился курсор и подсветилась рамка — это интерактивное поле.
- Ничего не происходит, но строка выделяется как текст — бланк плоский, поля просто нарисованы линиями.
- Ничего не происходит и выделить нельзя — перед вами скан, то есть страница-картинка целиком.
- Форма бывает смешанной: часть полей интерактивна, часть напечатана. Проверяйте каждое, а не первое попавшееся.
Настоящие поля: заполнить и заморозить
Значения, введённые в интерактивные поля, живут отдельно от содержимого страницы. Их можно случайно стереть, а некоторые просмотрщики печатают такое поле пустым. Поэтому перед отправкой форму запекают: значения переносятся в содержимое страницы, интерактивность исчезает, и файл выглядит одинаково у всех.
Наша реализация разбирает поля по одному. Библиотечная функция «запечь всё» падает на первом же виджете, который не удалось разрешить, — и падает уже после того, как перезаписала страницы предыдущих полей. Одно осиротевшее поле стоит всего документа. У нас поле применяется, только если разрешились все его виджеты, а те, что не поддались, остаются интерактивными и перечисляются по именам.
Второй подводный камень — кириллица. Стандартная перерисовка внешнего вида поля идёт через WinAnsi Helvetica, и любое значение по-русски или по-казахски бросает ошибку кодирования. Такие поля перерисовываются встроенным Roboto — это разница между запечённым значением и пустой клеткой в готовом файле.
Плоский бланк: писать поверх
- Откройте документ в редакторе и оставайтесь в режиме разметки.
- Инструментом «Текст» впишите значения в нужные клетки; кегль подбирайте под высоту строки бланка.
- Галочки удобнее ставить тем же текстом — символом × или ✓, а не рисовать карандашом.
- Подпись добавляйте отдельным инструментом: он умеет и нарисованную от руки, и загруженную картинкой.
- Экспортируйте файл. Надписи стали частью содержимого страниц и переживут пересохранение у получателя.
Частые вопросы
Чем запекание отличается от обычного сохранения?
Сохранение оставляет поля интерактивными: получатель может изменить значение, а часть просмотрщиков печатает такое поле пустым. Запекание переносит значения в содержимое страницы, после чего изменить их обычными средствами уже нельзя.
Почему часть полей осталась интерактивной после запекания?
Значит, их внешний вид не удалось разрешить — обычно у виджета нет страницы или потока внешнего вида. Такие поля названы поимённо: это честнее, чем отдать «замороженный» бланк с живыми клетками внутри.
Можно ли заполнить форму прямо в браузере на телефоне?
Интерактивные поля — да, встроенный просмотрщик мобильного браузера их обычно поддерживает. Плоский бланк удобнее заполнять на большом экране: попасть пальцем надписью в клетку высотой четыре миллиметра тяжело.
Что делать, если бланк — скан с печатью?
Работать с ним как с плоским: вписывать значения поверх картинки. Текстового слоя в скане нет, поэтому ни поиск, ни автоподстановка там не работают — только ручная расстановка надписей.