home / skills / 404kidwiz / claude-supercode-skills / pdf-skill
This skill helps you generate, parse, and manipulate PDFs programmatically using popular tools to create, extract, merge, and fill forms efficiently.
npx playbooks add skill 404kidwiz/claude-supercode-skills --skill pdf-skillReview the files below or copy the command above to add this skill to your agents.
---
name: pdf-skill
description: Expert in generating, parsing, and manipulating PDF documents using tools like PDFKit, PDF.js, and Puppeteer. Use when creating PDFs, extracting content, merging documents, or filling forms. Triggers include "PDF", "generate PDF", "parse PDF", "extract PDF", "merge PDF", "PDF form", "PDFKit".
---
# PDF Skill
## Purpose
Provides expertise in programmatic PDF generation, parsing, and manipulation. Specializes in creating PDFs from scratch, extracting content, merging/splitting documents, and handling forms using PDFKit, PDF.js, Puppeteer, and similar tools.
## When to Use
- Generating PDFs programmatically
- Extracting text or data from PDFs
- Merging or splitting PDF documents
- Filling PDF forms programmatically
- Converting HTML to PDF
- Adding watermarks or annotations
- Parsing PDF structure and metadata
- Building PDF report generators
## Quick Start
**Invoke this skill when:**
- Generating PDFs from code or data
- Extracting content from PDF files
- Merging, splitting, or manipulating PDFs
- Filling or creating PDF forms
- Converting HTML/web pages to PDF
**Do NOT invoke when:**
- Word document creation → use `/docx-skill`
- Excel/spreadsheet work → use `/xlsx-skill`
- PowerPoint creation → use `/pptx-skill`
- General file operations → use Bash or file tools
## Decision Framework
```
PDF Operation?
├── Generate from scratch
│ ├── Simple → PDFKit (Node) / ReportLab (Python)
│ └── Complex layouts → Puppeteer/Playwright + HTML
├── Parse/Extract
│ ├── Text extraction → pdf-parse / PyPDF2
│ └── Table extraction → Camelot / Tabula
├── Manipulate
│ └── pdf-lib (merge, split, edit)
└── Forms
└── pdf-lib (fill) / PDFtk (advanced)
```
## Core Workflows
### 1. PDF Generation with PDFKit
1. Install PDFKit (`npm install pdfkit`)
2. Create new PDDocument
3. Add content (text, images, graphics)
4. Style with fonts and colors
5. Add pages as needed
6. Pipe to file or response
### 2. HTML to PDF Conversion
1. Set up Puppeteer/Playwright
2. Navigate to HTML content or URL
3. Configure page size and margins
4. Set print options (headers, footers)
5. Generate PDF buffer
6. Save or stream result
### 3. PDF Parsing and Extraction
1. Choose parser (pdf-parse, PyPDF2, pdfplumber)
2. Load PDF file
3. Extract text or structured data
4. Handle multi-page documents
5. Clean and normalize extracted text
6. Output in desired format
## Best Practices
- Use vector graphics over raster when possible
- Embed fonts for consistent rendering
- Test PDF output across different readers
- Handle large PDFs with streaming
- Use appropriate library for task complexity
- Consider accessibility (tagged PDFs)
## Anti-Patterns
| Anti-Pattern | Problem | Correct Approach |
|--------------|---------|------------------|
| Image-only PDFs | Not searchable/accessible | Use text with fonts |
| No font embedding | Rendering issues | Embed required fonts |
| Memory loading large PDFs | Crashes | Stream processing |
| Ignoring encryption | Security/access issues | Handle encrypted PDFs |
| Wrong tool for job | Over-engineering | Match tool to complexity |
This skill provides expert, programmatic PDF generation, parsing, and manipulation using tools like PDFKit, PDF.js, Puppeteer, and Python libraries. It covers creating PDFs from data or HTML, extracting and normalizing content, merging/splitting documents, and filling forms reliably. Use it to automate PDF workflows, convert web pages to print-ready files, and build accessible report pipelines.
The skill selects the right library for the task: lightweight PDFKit/ReportLab for simple generation, Puppeteer/Playwright for complex HTML-to-PDF rendering, and pdf-parse/PyPDF2/pdfplumber for extraction. It supports streaming large files, embedding fonts, applying watermarks, merging or splitting with pdf-lib or similar, and programmatic form filling with pdf-lib or PDFtk. Outputs can be written to disk, returned as buffers/streams, or streamed to HTTP responses.
Which tool should I use to render complex HTML/CSS to PDF?
Use Puppeteer or Playwright for pixel-perfect HTML/CSS rendering and precise control over print options.
How do I avoid memory issues with large PDFs?
Process PDFs in a streaming fashion, operate on page ranges, or use libraries that support incremental reading rather than loading the whole file.