PDF Form Filler — скилл для Claude Code: заполняет PDF-формы
Скилл заполняет PDF-формы по вашим данным и вытаскивает значения полей из готовых документов. Пригодится, когда форм много или они повторяются.
npx skills add claude-office-skills/skills --skill pdf-form-filler -a claude-codeЧто делает PDF Form Filler
Скилл работает через MCP-сервер office-mcp и его инструменты fill_pdf_form и get_pdf_metadata. Поддерживает текстовые поля, чекбоксы, радиокнопки, выпадающие списки, поля даты, подпись и combo box. Данные подставляются по карте полей: вы описываете соответствие между именами полей формы и значениями, дальше агент заполняет документ.
Есть шаблоны для повторного использования: карта полей, YAML-маппинг значений и пример данных в JSON. Отдельно идёт валидация — проверка формата email, телефона, SSN, даты, ZIP и суммы, плюс условия между полями вроде «employer_name обязателен, если employed = true». После заполнения скилл выдаёт отчёт: сколько полей заполнено, что не нашлось, где предупреждения.
Пакетный режим берёт CSV со строками и генерирует по форме на каждую запись, складывая результат в папку. Поле подписи требует сертификата или картинки — его придётся закрывать вручную, это видно в отчётах как предупреждение. Установка идёт через npx skills add, для GitHub Copilot — через gh skill install.
Проверьте имена полей до запуска: если имя в маппинге не совпадает с формой, поле просто не заполнится, и вы увидите это только в отчёте.
Какие задачи решает
- заполнить PDF-форму данными из JSON или YAML
- вытащить значения всех полей из готового PDF
- сгенерировать пачку форм по строкам CSV
- проверить данные до подстановки: email, телефон, дата, ZIP
- собрать карту полей формы с типами и обязательностью
Примеры запросов агенту
- Заполни эту PDF-форму: имя John Smith, дата 2026-01-29, сумма $1,500
- Извлеки все значения полей из этого PDF
- Сгенерируй формы для каждой строки в этом CSV
Как установить PDF Form Filler
1Через Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill pdf-form-filler -a claude-code2Вручную: положить файлы
~/.claude/skills/pdf-form-filler/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/pdf-form-filler/
1Через Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill pdf-form-filler -a codex2Вручную: положить файлы
.agents/skills/pdf-form-filler/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill pdf-form-filler -a cursor2Вручную: положить файлы
.cursor/skills/pdf-form-filler/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install claude-office-skills/skills pdf-form-filler2Вручную: положить файлы
.github/skills/pdf-form-filler/SKILL.md1Через Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill pdf-form-filler -a gemini-cli2Командой платформы
gemini skills install https://github.com/claude-office-skills/skills --path pdf-form-fillerВручную: положить файлы
.devin/skills/pdf-form-filler/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add claude-office-skills/skills --skill pdf-form-filler -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о PDF Form Filler
Как установить PDF Form Filler в Claude?
Выполните npx skills add claude-office-skills/skills --skill pdf-form-filler -a claude-code. Файл скилла появится по пути ~/.claude/skills/pdf-form-filler/SKILL.md.
Что делает PDF Form Filler?
Заполняет PDF-формы переданными данными, извлекает значения полей из заполненных документов и умеет пакетно генерировать формы по CSV. Работает через MCP-сервер office-mcp.
Какие поля формы поддерживаются?
Текстовые поля, чекбоксы, радиокнопки, выпадающие списки, поля даты, combo box и подпись. Для поля подписи нужен сертификат или изображение, иначе его придётся заполнить вручную.
Исходный текст
SKILL.md · MIT
---
# ═══════════════════════════════════════════════════════════════════════════════
# CLAUDE OFFICE SKILL - Enhanced Metadata v2.0
# ═══════════════════════════════════════════════════════════════════════════════
# Basic Information
name: PDF Form Filler
description: "Fill out PDF forms programmatically and extract form data"
version: "1.0"
author: claude-office-skills
license: MIT
# Categorization
category: pdf
tags:
- pdf
- form
- fill
- data-entry
department: All
# AI Model Compatibility
models:
recommended:
- claude-sonnet-4
- claude-opus-4
compatible:
- claude-3-5-sonnet
- gpt-4
- gpt-4o
# MCP Tools Integration
mcp:
server: office-mcp
tools:
- fill_pdf_form
- get_pdf_metadata
# Skill Capabilities
capabilities:
- form_filling
- data_entry
- pdf_forms
# Language Support
languages:
- en
- zh
---
# PDF Form Filler
Fill out PDF forms automatically and extract data from completed forms.
## Overview
This skill helps you:
- Fill PDF forms with provided data
- Extract data from filled forms
- Batch fill multiple forms
- Validate form data
- Create form-filling templates
## How to Use
### Fill a Form
```
"Fill this PDF form with the following data:
- Name: John Smith
- Date: 2026-01-29
- Amount: $1,500"
```
### Extract Form Data
```
"Extract all form field values from this PDF"
"What data is filled in this form?"
```
### Batch Fill
```
"Fill 50 copies of this form using data from the spreadsheet"
"Generate forms for each row in this CSV"
```
## Form Field Types
### Supported Fields
| Field Type | Description | Fill Method |
|------------|-------------|-------------|
| **Text Field** | Single/multi-line text | Direct text entry |
| **Checkbox** | Yes/No selection | Check/uncheck |
| **Radio Button** | One of many options | Select option |
| **Dropdown** | List selection | Choose value |
| **Date Field** | Date picker | Date value |
| **Signature** | Digital signature | Signature image/certificate |
| **Combo Box** | Dropdown with text entry | Select or type |
### Field Identification
```markdown
## Form Fields: [Form Name]
### Field Map
| Field Name | Type | Required | Page | Notes |
|------------|------|----------|------|-------|
| applicant_name | Text | Yes | 1 | Max 50 chars |
| birth_date | Date | Yes | 1 | MM/DD/YYYY |
| gender | Radio | Yes | 1 | M/F/Other |
| employed | Checkbox | No | 1 | Check if yes |
| state | Dropdown | Yes | 2 | US states |
| signature | Signature | Yes | 3 | Digital sig |
```
## Fill Templates
### Data Mapping Template
```markdown
## Form Fill Template: [Form Name]
### Form Info
- **File**: application_form.pdf
- **Total Fields**: 25
- **Required Fields**: 15
### Field Mappings
```yaml
# Personal Information
applicant_name: "${firstName} ${lastName}"
date_of_birth: "${birthDate}"
ssn_last_four: "${ssnLast4}"
phone: "${phone}"
email: "${email}"
# Address
street_address: "${address.street}"
city: "${address.city}"
state: "${address.state}"
zip_code: "${address.zip}"
# Employment
currently_employed: ${isEmployed} # checkbox
employer_name: "${employer.name}"
job_title: "${employer.title}"
# Selections
payment_method: "${paymentMethod}" # dropdown
agree_terms: true # checkbox
```
### Sample Data
```json
{
"firstName": "John",
"lastName": "Smith",
"birthDate": "1990-05-15",
"phone": "555-123-4567",
"email": "[email protected]",
"address": {
"street": "123 Main St",
"city": "New York",
"state": "NY",
"zip": "10001"
},
"isEmployed": true,
"employer": {
"name": "Acme Corp",
"title": "Manager"
},
"paymentMethod": "Direct Deposit"
}
```
```
## Output Formats
### Fill Result Report
```markdown
## Form Fill Result
### Summary
| Status | Value |
|--------|-------|
| **Form** | application_form.pdf |
| **Fields Filled** | 23/25 |
| **Errors** | 2 |
| **Output** | filled_application.pdf |
### Filled Fields
| Field | Value | Status |
|-------|-------|--------|
| applicant_name | John Smith | ✅ |
| date_of_birth | 05/15/1990 | ✅ |
| phone | 555-123-4567 | ✅ |
| state | NY | ✅ |
| payment_method | Direct Deposit | ✅ |
### Errors/Warnings
| Field | Issue | Suggestion |
|-------|-------|------------|
| ssn | Field not found | Check field name |
| signature | Requires certificate | Add signature manually |
### Validation
- ✅ All required fields filled
- ✅ Date formats correct
- ⚠️ Signature field needs manual completion
```
### Extracted Data Report
```markdown
## Form Data Extraction
### Source: completed_form.pdf
### Extracted Values
```json
{
"form_title": "Employment Application",
"submission_date": "2026-01-29",
"fields": {
"applicant_name": "Jane Doe",
"date_of_birth": "1985-03-20",
"email": "[email protected]",
"phone": "555-987-6543",
"address": "456 Oak Ave, Chicago, IL 60601",
"position_applied": "Senior Developer",
"salary_expectation": "$120,000",
"available_start": "2026-03-01",
"references_provided": true
}
}
```
### Field Statistics
| Metric | Value |
|--------|-------|
| Total fields | 30 |
| Filled fields | 28 |
| Empty fields | 2 |
| Extraction confidence | 98% |
```
## Batch Processing
### Batch Fill Job
```markdown
## Batch Form Fill
### Configuration
- **Template Form**: w9_form.pdf
- **Data Source**: vendors.csv
- **Records**: 150
- **Output Folder**: /filled_w9s/
### Data Preview
| Row | Name | TIN | Address |
|-----|------|-----|---------|
| 1 | Acme Corp | XX-XXX1234 | 123 Main St |
| 2 | Beta LLC | XX-XXX5678 | 456 Oak Ave |
| ... | ... | ... | ... |
### Progress
| Status | Count | % |
|--------|-------|---|
| ✅ Completed | 145 | 97% |
| ⚠️ Warnings | 3 | 2% |
| ❌ Errors | 2 | 1% |
### Errors
| Row | Issue |
|-----|-------|
| 47 | Invalid TIN format |
| 89 | Missing required: Address |
### Output Files
- w9_acme_corp.pdf
- w9_beta_llc.pdf
- ...
```
## Form Validation
### Validation Rules
```markdown
## Form Validation Rules
### Field Validations
| Field | Rule | Error Message |
|-------|------|---------------|
| email | Valid email format | "Invalid email address" |
| phone | 10 digits | "Phone must be 10 digits" |
| ssn | XXX-XX-XXXX format | "Invalid SSN format" |
| date | MM/DD/YYYY | "Use MM/DD/YYYY format" |
| zip | 5 or 9 digits | "Invalid ZIP code" |
| amount | Numeric, > 0 | "Enter positive number" |
### Cross-Field Validations
| Rule | Fields | Condition |
|------|--------|-----------|
| Conditional required | employer_name | Required if employed = true |
| Date range | end_date | Must be after start_date |
| Sum check | item_totals | Must equal grand_total |
```
### Validation Report
```markdown
## Pre-Fill Validation
### Data Validation Results
| Field | Value | Valid | Issue |
|-------|-------|-------|-------|
| email | john@email | ❌ | Missing domain |
| phone | 555-1234 | ❌ | Only 7 digits |
| date | 2026-01-29 | ✅ | - |
| zip | 10001 | ✅ | - |
### Summary
- ✅ Valid: 18 fields
- ❌ Invalid: 2 fields
- ⚠️ Warnings: 3 fields
### Recommendations
1. Fix email format: add domain (e.g., @company.com)
2. Complete phone number with area code
```
## Common Form Types
### Government Forms
| Form | Purpose | Key Fields |
|------|---------|------------|
| W-9 | Tax identification | TIN, name, address |
| I-9 | Employment eligibility | ID info, citizenship |
| W-4 | Withholding | Allowances, status |
| 1099 | Contractor income | Income, payer info |
### Business Forms
| Form | Purpose | Key Fields |
|------|---------|------------|
| NDA | Confidentiality | Parties, terms, dates |
| Invoice | Billing | Items, amounts, terms |
| PO | Purchase order | Items, quantities, vendor |
| Application | Various | Personal info, history |
## Tool Recommendations
### Desktop Software
- **Adobe Acrobat Pro**: Full form features
- **Foxit PDF Editor**: Good form support
- **PDFescape**: Free online option
- **JotForm**: Form creation and filling
### Programming Libraries
- **pdf-lib** (JavaScript): Fill and create forms
- **PyPDF2** (Python): Basic form filling
- **iText** (Java/.NET): Enterprise forms
- **PDFBox** (Java): Apache project
### Automation Tools
- **Adobe Acrobat Actions**: Batch processing
- **Power Automate**: Microsoft integration
- **Zapier + PDF.co**: Cloud automation
## Limitations
- Cannot execute actual form filling (provides guidance)
- Digital signatures require proper certificates
- Some secured PDFs prevent form filling
- Complex calculations may not auto-update
- Flattened forms cannot be edited
- Field names must match exactly
© claude-office-skills · MIT · claude-office-skills/skills