Установка скиллов и плагинов OpenClaw осуществляется на ваш страх и риск. Все файлы были получены из открытых источников и предоставляются «как есть». Мы не гарантируем их корректную работу, безопасность или совместимость с вашей системой. Перед установкой настоятельно рекомендуется ознакомиться с содержимым кода и убедиться, что вы понимаете, какие изменения будут внесены в вашу систему.
PDF Form Filler — это инструмент для программного заполнения PDF-форм текстовыми значениями и чекбоксами. Он использует библиотеку pdfrw, позволяя устанавливать значения полей формы с сохранением корректного визуального отображения в PDF-просмотрщиках.
Быстрый старт
from pdf_form_filler import fill_pdf_form
fill_pdf_form(
input_pdf="form.pdf",
output_pdf="form_filled.pdf",
data={
"Name": "John Doe",
"Email": "john@example.com",
"Herr": True,
"Dienstreise": True,
}
)
Возможности
- Текстовые поля — заполнение любых значений: имён, дат, адресов и т.д.
- Чекбоксы — установка логических значений (True/False)
- Состояния отображения — корректная установка состояний
/Onи/Off - Сохранение структуры — форма остаётся редактируемой
- Без зависимостей — используется лёгкая библиотека pdfrw
Как это работает
- Открывается шаблон PDF
- Происходит обход всех полей формы
- Значения устанавливаются для совпадающих имён полей
- Для чекбоксов задаются значения
/Vи/AS - Сохраняется заполненный PDF-файл
Сопоставление имён полей
Имена полей должны точно совпадать с теми, что используются в PDF-документе. Примеры:
- Немецкие формы: Herr, Frau, Dienstreise
- Английские формы: Full Name, Email, Agree
- Поля дат: Date, DOB, Start Date
Чтобы узнать доступные поля, используйте функцию:
from pdf_form_filler import list_pdf_fields
fields = list_pdf_fields("form.pdf")
for field_name, field_type in fields:
print(f"{field_name}: {field_type}")
Типы полей
- text — текстовое поле
- checkbox — чекбокс
- radio — радиокнопка
- dropdown — выпадающий список
- signature — поле подписи
Пример: форма заявки на работу
fill_pdf_form(
input_pdf="job_application.pdf",
output_pdf="job_application_filled.pdf",
data={
"Full Name": "Jane Smith",
"Email": "jane.smith@example.com",
"Phone": "555-1234",
"Position": "Software Engineer",
"Years Experience": "5",
"Willing to relocate": True,
"Available immediately": False,
"Background check consent": True,
}
)
Расширенное использование
Частичное заполнение
data = {"Name": "Jane Doe"}
fill_pdf_form("form.pdf", "form_filled.pdf", data)
Динамическое определение полей
fields = list_pdf_fields("form.pdf")
data = {}
for field_name, field_type in fields:
if field_type == "text":
data[field_name] = input(f"Enter {field_name}: ")
elif field_type == "checkbox":
data[field_name] = input(f"Check {field_name}? (y/n): ").lower() == 'y'
fill_pdf_form("form.pdf", "form_filled.pdf", data)
Пакетная обработка
import os
from pdf_form_filler import fill_pdf_form
data = {"Name": "John Doe", "Date": "2026-01-24"}
for filename in os.listdir("forms/"):
if filename.endswith(".pdf"):
fill_pdf_form(
f"forms/{filename}",
f"forms_filled/{filename}",
data
)
Устранение проблем
Чекбоксы не отображаются
Некоторые PDF-просмотрщики не обновляют внешний вид чекбоксов. При этом значение сохраняется корректно (/On или /Off).
- Попробуйте открыть файл в Adobe Reader
- Используйте Firefox
- На Linux подойдут evince или okular
Поля не найдены
Используйте list_pdf_fields() для проверки точных имён полей. Некоторые формы используют нестандартные названия или вложенные структуры.
Текст обрезается
Причина может быть в ограниченной ширине поля. Возможные решения:
- Сократить текст
- Изменить размер шрифта в шаблоне PDF
Дополнительно
Скрипт полной реализации доступен в scripts/fill_pdf_form.py. Инструмент подходит для автоматизации заполнения форм: заявлений, анкет, опросов и других документов.
Файл из источника