Как работать с JavaScript в PDF Commander:
создание интерактивных форм
PDF Commander позволяет не просто создавать формы, но и делать их умными — с помощью JavaScript.
Вы можете проверять данные (например, телефон или email), автоматически рассчитывать значения или менять поведение формы в зависимости от действий пользователя. Это особенно удобно, если вы делаете анкеты, опросники, заявки или другие документы, где очень важна точность.
В этой статье мы покажем, как добавить JS-скрипты в PDF-форму на примере анкеты с проверкой данных.
📌 Пример готовой формы:
Скачать PDF-файл с настроенными скриптами
1. Создание формы в PDF Commander
Откройте PDF Commander и создайте новый документ. Перейдите в «Формы» и добавьте необходимые пункты, например:
- ✔ Текстовое поле для имени, возраста, телефона и других данных.
- ✔ Выпадающий список или чекбоксы с вариантами ответов.
- ✔ Кнопку с действием — например, «Проверить анкету».
Каждое поле имеет свое имя — именно по нему скрипт будет обращаться к данным. Имена отображаются в «Свойствах» каждого элемента, например «Сheckbox1», «name».
PDF Commander присваивает имя автоматически, но вы в любое время можете его изменить, если нужно. Правильные имена помогут скрипту работать без ошибок.
2. Добавление JavaScript для проверки данных
Для примера сделаем кнопку «Проверить анкету». Этот скрипт проверит, правильно ли заполнена форма (выполнены ли условия):
- ✔ Поле «Имя» не должно быть пустым. Если пользователь ничего не ввел — появится уведомление об этом.
- ✔ Для поля «Возраст» ожидается число от 18 до 99 лет. Если введено не число или значение вне диапазона — на экране сразу появится соответствующее сообщение.
- ✔ Поле «Вес» должно быть числом больше нуля. Если введено отрицательное число или не число — вы увидите ошибку.
- ✔ В строке «Телефон» удаляются все символы, кроме цифр. Номер должен состоять из 11 знаков и начинаться с 7 или 8. В противном случае — появится предупреждение.
- ✔ Для «Пола» нужно выбрать значение из списка. Если выбор не сделан — программа покажет ошибку.
- ✔ Что касается «Образования», хотя бы один чекбокс должен быть отмечен. Если ни один не выбран — появится уведомление.
- ✔ Если все заполнено верно — покажет сообщение об успехе.
Где настроить
- 1. Выберите кнопку и откройте «Свойства».
- 2. Перейдите в «Действия» → «Добавить». В поле «Событие» выберите «Активация».
- 3. В поле «Действие» → «Выполнить программу JavaScript».
- 4. Откроется окно ввода. Вставьте в него скрипт:
function validateForm() {
try {
// 1. Проверка имени
var nameField = this.getField("name");
if (!nameField.valueAsString || nameField.valueAsString.trim() === "") {
nameField.setFocus();
app.alert("Введите ваше имя!", 1);
return false;
}
// 2. Проверка возраста
var ageField = this.getField("age");
var age = parseInt(ageField.valueAsString || "", 10);
if (isNaN(age)) {
ageField.setFocus();
app.alert("Введите возраст числом!", 1);
return false;
}
if (age < 18 || age> 99) {
ageField.setFocus();
app.alert("Возраст должен быть от 18 до 99 лет!", 1);
return false;
}
// 3. Проверка веса
var weightField = this.getField("weight");
var weight = parseFloat(weightField.valueAsString || "");
if (isNaN(weight)) {
weightField.setFocus();
app.alert("Введите вес числом!", 1);
return false;
}
if (weight <= 0) {
weightField.setFocus();
app.alert("Вес должен быть больше нуля!", 1);
return false;
}
// 4. Проверка телефона
var phoneField=this.getField("phone_num");
var phone=(phoneField.valueAsString || "" ).replace(/\D/g, '' );
if (phone.length !==11 || !/^[78]/.test(phone)) {
phoneField.setFocus();
app.alert("Номер должен содержать 11 цифр и начинаться с 7 или 8!", 1);
return false;
}
// 5. Проверка пола
var genderField=this.getField("gender");
if (!genderField.value || genderField.value==="Off" ) {
genderField.setFocus();
app.alert("Пожалуйста, выберите Ваш пол!", 1);
return false;
}
// 6. Проверка образования
var hasEducation=false;
for (var i=0; i < this.numFields; i++) {
var fieldName=this.getNthFieldName(i);
if (fieldName && fieldName.startsWith("education.")) {
var field=this.getField(fieldName);
if (field && field.type==="checkbox" && field.value==="Yes" ) {
hasEducation=true;
break;
}
}
}
if (!hasEducation) {
var firstEduField=this.getField("education.school") ||
this.getField(this.getNthFieldName(0));
if (firstEduField) firstEduField.setFocus();
app.alert("Ошибка: Ни один вариант образования не выбран", 1);
return false;
}
// Если все проверки пройдены
app.alert("Форма готова к отправке, все данные введены верно!", 2);
return true;
} catch (e) {
app.alert("Произошла ошибка при проверке: " + e, 2);
return false;
}
}
// Запуск проверки
if (!validateForm.call(this)) {
// Выходим при ошибке
throw new Error(" Validation failed");
}
Что делает этот код
Скрипт работает так:
- 1. Проверяет каждое поле по очереди.
- 2. Если находит ошибку — показывает уведомление и возвращает фокус на проблемное поле.
- 3. Если все в порядке — выводит сообщение об этом.
Комментарии после « //» помогают понять, что делает каждый фрагмент кода. Они не влияют на работу программы.
Заключение
Сохраните настройки и посмотрите, как все работает. Форма будет проверять данные, покажет ошибки, если они есть, и пояснит, что было заполнено неправильно.
Чтобы больше узнать о JavaScript и использовать его в своих проектах, изучите официальную документацию по ссылке https://developer.mozilla.org/ru/docs/Web/JavaScript. Используйте скрипты в PDF Commander и создавайте даже достаточно сложные логики без сторонних инструментов!

OCR