Работа с PDF в PHP
По-сути весь процесс сводится к разметке полей формы и установке уже готовых пакетов. По ссылке найдете пример того, что можно получить в итоге. В примере есть заполненные поля формы, выбранные чекбоксы, изображения (в моем случае это подпись) и работа с несколькими страницами. Все действия будут именно с вышеуказанными примером.
Установка pdftk-server
Устанавливаем pdftk. Обязательно нужно проверить чтобы не было ошибок, если вбить в терминал pdftk. Библиотека mikehaertl\php-pdftk под капотом использует эту утилиту, так что все должно работать как часы.
Разметка полей формы
Далее нужно разметить поля формы, если они еще не существуют. Если же существуют, то можно как-нибудь переименовать для читабельности. Выбор софта для разметки оставляю за вами, лично мне удобнее использовать для этого сервис pdfescape.com, он бесплатный и не требует регистрации. Загружаем туда нужный файл Upload PDF to PDFescape и смотрим есть ли размеченные поля, выглядят они как в правом нижнем углу картинки.
ПКМ на нужное поле Unlock Form Field и можно менять в свойствах все, что захотите. Размечая чекбоксы, обязательно ставьте EXPORT_VALUE = 1. Далее сохраняем подготовленную форму и работаем с ней.
Стоит добавить, что если в дальнейшем словите ошибки а-ля "формат не торт" или "прочитать не могу", возможно потребуется прогнать созданный файл через установленный pdftk командой "pdftk yourpdffile.pdf output output.pdf", ну и работать уже с output.pdf.
Работа с полями формы
Если вам не нужно добавлять изображения в файл, то достаточно подключить mikehaertl\php-pdftk. Для изображений потребуется setasign\Fpdi.
Пример кода (сильно упрощен):
Блок комментариев