pdf-tools
PDF engineering for extraction, generation, modification, and form filling.
Skill by oakoss
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/choseohwan-pdf-tools
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, frontend, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/pdf-tools
What's inside
- Skill name
pdf-tools- Description
- PDF engineering for extraction, generation, modification, and form filling. Use when extracting text or tables from PDFs, generating PDFs with Puppeteer, modifying PDFs with pdf-lib, filling PDF forms, or implementing PDF security. Use for AI-assisted OCR, HTML-to-PDF conversion, and document processing pipelines.
- License
- MIT
- Metadata
- author: oakoss · version: 1.1
- Instructions
- 59 lines in SKILL.md · view on GitHub
Files (6)
- SKILL.md
- ai-extraction-patterns.md · references/
- batch-and-accessibility.md · references/
- form-filling.md · references/
- high-fidelity-generation.md · references/
- legacy-utilities.md · references/
SKILL.md (first lines)
# PDF Tools Full-lifecycle PDF engineering covering extraction, generation, modification, form filling, and security. Prioritizes JavaScript-first solutions (pdf-lib, unpdf, Puppeteer) with Python/CLI utilities for advanced scenarios. **When to use**: Extracting structured data from PDFs, generating pixel-perfect PDFs from HTML/React, modifying existing PDFs, filling forms (fillable or non-fillable), or securing documents with encryption. **When NOT to use**: Simple text file processing, image-only manipulation without PDF context, or tasks better handled by a word processor. ## Quick Reference | Task | Tool | Key Point | | -------------------------- | ----------------------------- | -------------------------------------------------------------------------- | | Generate PDF from HTML | Puppeteer / Playwright | `page.pdf()`; use `networkidle0` (Puppeteer) or `networkidle` (Playwright) | | Extract text (lightweight) | unpdf | Edge/serverless compatible | | Extract tables (AI) | Vision model + Zod schema | Multi-column and merged cell support | | Extract tables (non-AI) | pdfplumber (Python) | Precise cell boundary detection | | Modify, merge, split | pdf-lib (or `@pdfme/pdf-lib`) | Byte-level PDF manipulation in JS | | Fill fillable forms | pdf-lib (or `@pdfme/pdf-lib`) | Inspect AcroForm fields before writing | | Fill non-fillable forms | Python annotation scripts | Visual analysis + bounding box annotations | | Encrypt PDF | qpdf | AES-256: `qpdf --encrypt user owner 256 --` | | Repair corrupted PDF | qpdf | `qpdf input.pdf --replace-input` | | Fast text extraction (CLI) | poppler-utils | `pdftotext -layout input.pdf -` | | Merge thousands of files | pypdf (Python) | Lighter than headless browser | | Batch queue processing | BullMQ + unpdf | Redis-backed with retry, concurrency, progress tracking | | PDF/A archival compliance | ghostscript + verapdf | `gs -dPDFA=2` for conversion; verapdf for validation | | Tagged PDF (accessibility) | Puppeteer | `tagged: true` maps HTML semantics to PDF structure tags | | Digital signatures | @signpdf/\* | PKCS#7 signing with P12 certificates | | PDF comparison | unpdf + diff / pixelmatch | Text diff or pixel-level visual diff between versions | | Secure redaction | pymupdf (fitz) | `apply_redactions()` removes content bytes, not just visual overlay | ## Common Mistakes | Mistake | Correct Pattern | | ------------------------------------------------------ | ----------------------------------------------------------------- | | Using canvas drawing commands for PDF generation | Use Puppeteer/Playwright with HTML/CSS templates | | Running Puppeteer in edge/serverless environments | Use unpdf for edge; Puppeteer requires full Node.js | | Extracting complex layouts with basic text parsers | Use AI-assisted OCR or pdfplumber for multi-column text | | Storing unencrypted PDFs with PII in public storage | Apply AES-256 encryption via qpdf before storage | | Relying on `window.print()` for server-side generation | Use headless browser APIs (`page.pdf()`) for deterministic output | | Using pypdf for complex layout extraction | Use pdfplumber or AI OCR for multi-column or overlapping text | | Skipping font embedding in containerized environments | Embed Google Fonts or WOFF2 files with Puppeteer | | Writing to flattened PDF form fields | Inspect AcroForm fields with pdf-lib before writing | | Using unmaintained `pdf-lib` for encrypted PDFs | Use `@cantoo/pdf-lib` fork which adds encrypted PDF support | ## Delegation - **Inspect PDF structure and diagnose extraction issues**: Use `Explore` agent to examine AcroForm fields, encoding, and metadata - **Build end-to-end document processing pipelines**: Use `Task` agent to implement extraction, transformation, and generation workflows - **Design PDF architecture for a new system**: Use `Plan` agent to select tools and plan extraction, generation, or modification strategies ## References - [AI Extraction Patterns](references/ai-extraction-patterns.md) -- Vision-based table extraction, recursive summarization, multi-pass verification - [High-Fidelity Generation](references/high-fidelity-generation.md) -- Puppeteer HTML-to-PDF, CSS print tips, React templates, browser pooling - [Legacy Utilities](references/legacy-utilities.md) -- pdfplumber, pypdf, qpdf, poppler-utils for batch and forensic tasks - [Form Filling](references/form-filling.md) -- Fillable field extraction, non-fillable annotation workflow, validation scripts - [Batch Processing and Accessibility](references/batch-and-accessibility.md) -- Queue-based batch processing, PDF/A compliance, tagged PDFs, digital signatures, comparison, redaction
From ChoSeoHwan/seohwan-opencode, MIT.
More from ChoSeoHwan/seohwan-opencode
- 0.467score
soop-nx-generator
ChoSeoHwan
@soop-nx/cli 가 설치된 NX 모노레포 환경에서 새로운 프로젝트 또는 코드 파일을 생성할 때 최우선적으로 사용하는 스킬.
SkillCFreshness: CClaude Code +9 - 0.459score
sbs-approve-question
ChoSeoHwan
SBS 검수 승인 여부 질문 - 사용자에게 특정 플랜의 Task 승인/거절을 질문하고, 결과를 구조화된 JSON으로 출력한다.
SkillCFreshness: CClaude Code +9 - 0.394score
sbs-plan
ChoSeoHwan
SBS 플랜 생성 - 사용자 요청을 분석하여 Sisyphus 방식의 단계별 플랜을 .sisyphus/plans/에 생성한다.
SkillDFreshness: DClaude Code +9 - 0.394score
sbs-approve
ChoSeoHwan
SBS 검수 승인 - Task 완료 처리 및 다음 Task 자동 진행.
SkillDFreshness: DClaude Code +9 - 0.391score
sbs-cleanup-plan
ChoSeoHwan
SBS 완료 플랜 정리 - 사용자 확인 후 .sisyphus/plans/ 내의 플랜 파일을 삭제한다.
SkillDFreshness: DClaude Code +9 - 0.391score
sbs-reject
ChoSeoHwan
SBS 검수 반려 - 변경 요청 사항을 현재 Task에 반영하고 재검수를 요청한다.
SkillDFreshness: DClaude Code +9 - 0.391score
sbs-work
ChoSeoHwan
SBS 실행 - 플랜의 다음 미완료 Task 1개만 수행하고 검수 대기 상태로 진입한다.
SkillDFreshness: DClaude Code +9 - 0.388score
simple
ChoSeoHwan
단발성 단순 작업 전용 (지정 파일만 수정)
SkillDFreshness: DClaude Code +9 - 0.252score
update-agent-md
ChoSeoHwan
공통 지식 업데이트
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- May 28, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.1
- License
- MIT
- Repository
- github.com/ChoSeoHwan/seohwan-opencode
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Cite this page
pdf-tools skill. Agent Mart. https://agentmart.dev/skills/choseohwan-pdf-tools (last updated 2026-10-24)