Скиллы Средний Исследования и аналитика

PDF Form Filler

Скачать ZIP
9
Предупреждение о рисках!

Установка скиллов и плагинов 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. Инструмент подходит для автоматизации заполнения форм: заявлений, анкет, опросов и других документов.


Файл из источника

11617_pdf-form-filler-0.2.0.zip