pdf — community geoffrey, community, ide skills

v1.0.0

About this Skill

Perfect for Document Analysis Agents needing advanced PDF processing capabilities. Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically p

krishagel krishagel
[0]
[0]
Updated: 2/20/2026

Killer-Skills Review

Decision support comes first. Repository text comes second.

Reference-Only Page Review Score: 7/11

This page remains useful for operators, but Killer-Skills treats it as reference material instead of a primary organic landing page.

Original recommendation layer Concrete use-case guidance Explicit limitations and caution Locale and body language aligned
Review Score
7/11
Quality Score
45
Canonical Locale
en
Detected Body Locale
en

Perfect for Document Analysis Agents needing advanced PDF processing capabilities. Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically p

Core Value

Empowers agents to extract text, fill out forms, and manipulate PDF documents using Python libraries like pypdf, providing comprehensive content analysis and PDF processing operations.

Ideal Agent Persona

Perfect for Document Analysis Agents needing advanced PDF processing capabilities.

Capabilities Granted for pdf

Extracting text from PDF documents
Filling out PDF forms programmatically
Analyzing PDF structure and content

! Prerequisites & Limits

  • Requires Python environment
  • Limited to PDF file format
  • Dependent on pypdf library

Why this page is reference-only

  • - The underlying skill quality score is below the review floor.

Source Boundary

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

After The Review

Decide The Next Action Before You Keep Reading Repository Material

Killer-Skills should not stop at opening repository instructions. It should help you decide whether to install this skill, when to cross-check against trusted collections, and when to move into workflow rollout.

Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is pdf?

Perfect for Document Analysis Agents needing advanced PDF processing capabilities. Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically p

How do I install pdf?

Run the command: npx killer-skills add krishagel/geoffrey/pdf. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for pdf?

Key use cases include: Extracting text from PDF documents, Filling out PDF forms programmatically, Analyzing PDF structure and content.

Which IDEs are compatible with pdf?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for pdf?

Requires Python environment. Limited to PDF file format. Dependent on pypdf library.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add krishagel/geoffrey/pdf. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use pdf immediately in the current project.

! Reference-Only Mode

This page remains useful for installation and reference, but Killer-Skills no longer treats it as a primary indexable landing page. Read the review above before relying on the upstream repository instructions.

Upstream Repository Material

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

Upstream Source

pdf

Install pdf, an AI agent skill for AI agent workflows and automation. Review the use cases, limitations, and setup path before rollout.

SKILL.md
Readonly
Upstream Repository Material
The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.
Supporting Evidence

PDF Processing Guide

Overview

This guide covers essential PDF processing operations using Python libraries and command-line tools. For advanced features, JavaScript libraries, and detailed examples, see reference.md. If you need to fill out a PDF form, read forms.md and follow its instructions.

Quick Start

python
1from pypdf import PdfReader, PdfWriter 2 3# Read a PDF 4reader = PdfReader("document.pdf") 5print(f"Pages: {len(reader.pages)}") 6 7# Extract text 8text = "" 9for page in reader.pages: 10 text += page.extract_text()

Python Libraries

pypdf - Basic Operations

Merge PDFs

python
1from pypdf import PdfWriter, PdfReader 2 3writer = PdfWriter() 4for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]: 5 reader = PdfReader(pdf_file) 6 for page in reader.pages: 7 writer.add_page(page) 8 9with open("merged.pdf", "wb") as output: 10 writer.write(output)

Split PDF

python
1reader = PdfReader("input.pdf") 2for i, page in enumerate(reader.pages): 3 writer = PdfWriter() 4 writer.add_page(page) 5 with open(f"page_{i+1}.pdf", "wb") as output: 6 writer.write(output)

Extract Metadata

python
1reader = PdfReader("document.pdf") 2meta = reader.metadata 3print(f"Title: {meta.title}") 4print(f"Author: {meta.author}") 5print(f"Subject: {meta.subject}") 6print(f"Creator: {meta.creator}")

Rotate Pages

python
1reader = PdfReader("input.pdf") 2writer = PdfWriter() 3 4page = reader.pages[0] 5page.rotate(90) # Rotate 90 degrees clockwise 6writer.add_page(page) 7 8with open("rotated.pdf", "wb") as output: 9 writer.write(output)

pdfplumber - Text and Table Extraction

Extract Text with Layout

python
1import pdfplumber 2 3with pdfplumber.open("document.pdf") as pdf: 4 for page in pdf.pages: 5 text = page.extract_text() 6 print(text)

Extract Tables

python
1with pdfplumber.open("document.pdf") as pdf: 2 for i, page in enumerate(pdf.pages): 3 tables = page.extract_tables() 4 for j, table in enumerate(tables): 5 print(f"Table {j+1} on page {i+1}:") 6 for row in table: 7 print(row)

Advanced Table Extraction

python
1import pandas as pd 2 3with pdfplumber.open("document.pdf") as pdf: 4 all_tables = [] 5 for page in pdf.pages: 6 tables = page.extract_tables() 7 for table in tables: 8 if table: # Check if table is not empty 9 df = pd.DataFrame(table[1:], columns=table[0]) 10 all_tables.append(df) 11 12# Combine all tables 13if all_tables: 14 combined_df = pd.concat(all_tables, ignore_index=True) 15 combined_df.to_excel("extracted_tables.xlsx", index=False)

reportlab - Create PDFs

Basic PDF Creation

python
1from reportlab.lib.pagesizes import letter 2from reportlab.pdfgen import canvas 3 4c = canvas.Canvas("hello.pdf", pagesize=letter) 5width, height = letter 6 7# Add text 8c.drawString(100, height - 100, "Hello World!") 9c.drawString(100, height - 120, "This is a PDF created with reportlab") 10 11# Add a line 12c.line(100, height - 140, 400, height - 140) 13 14# Save 15c.save()

Create PDF with Multiple Pages

python
1from reportlab.lib.pagesizes import letter 2from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak 3from reportlab.lib.styles import getSampleStyleSheet 4 5doc = SimpleDocTemplate("report.pdf", pagesize=letter) 6styles = getSampleStyleSheet() 7story = [] 8 9# Add content 10title = Paragraph("Report Title", styles['Title']) 11story.append(title) 12story.append(Spacer(1, 12)) 13 14body = Paragraph("This is the body of the report. " * 20, styles['Normal']) 15story.append(body) 16story.append(PageBreak()) 17 18# Page 2 19story.append(Paragraph("Page 2", styles['Heading1'])) 20story.append(Paragraph("Content for page 2", styles['Normal'])) 21 22# Build PDF 23doc.build(story)

Command-Line Tools

pdftotext (poppler-utils)

bash
1# Extract text 2pdftotext input.pdf output.txt 3 4# Extract text preserving layout 5pdftotext -layout input.pdf output.txt 6 7# Extract specific pages 8pdftotext -f 1 -l 5 input.pdf output.txt # Pages 1-5

qpdf

bash
1# Merge PDFs 2qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf 3 4# Split pages 5qpdf input.pdf --pages . 1-5 -- pages1-5.pdf 6qpdf input.pdf --pages . 6-10 -- pages6-10.pdf 7 8# Rotate pages 9qpdf input.pdf output.pdf --rotate=+90:1 # Rotate page 1 by 90 degrees 10 11# Remove password 12qpdf --password=mypassword --decrypt encrypted.pdf decrypted.pdf

pdftk (if available)

bash
1# Merge 2pdftk file1.pdf file2.pdf cat output merged.pdf 3 4# Split 5pdftk input.pdf burst 6 7# Rotate 8pdftk input.pdf rotate 1east output rotated.pdf

Common Tasks

Extract Text from Scanned PDFs

python
1# Requires: pip install pytesseract pdf2image 2import pytesseract 3from pdf2image import convert_from_path 4 5# Convert PDF to images 6images = convert_from_path('scanned.pdf') 7 8# OCR each page 9text = "" 10for i, image in enumerate(images): 11 text += f"Page {i+1}:\n" 12 text += pytesseract.image_to_string(image) 13 text += "\n\n" 14 15print(text)

Add Watermark

python
1from pypdf import PdfReader, PdfWriter 2 3# Create watermark (or load existing) 4watermark = PdfReader("watermark.pdf").pages[0] 5 6# Apply to all pages 7reader = PdfReader("document.pdf") 8writer = PdfWriter() 9 10for page in reader.pages: 11 page.merge_page(watermark) 12 writer.add_page(page) 13 14with open("watermarked.pdf", "wb") as output: 15 writer.write(output)

Extract Images

bash
1# Using pdfimages (poppler-utils) 2pdfimages -j input.pdf output_prefix 3 4# This extracts all images as output_prefix-000.jpg, output_prefix-001.jpg, etc.

Password Protection

python
1from pypdf import PdfReader, PdfWriter 2 3reader = PdfReader("input.pdf") 4writer = PdfWriter() 5 6for page in reader.pages: 7 writer.add_page(page) 8 9# Add password 10writer.encrypt("userpassword", "ownerpassword") 11 12with open("encrypted.pdf", "wb") as output: 13 writer.write(output)

Quick Reference

TaskBest ToolCommand/Code
Merge PDFspypdfwriter.add_page(page)
Split PDFspypdfOne page per file
Extract textpdfplumberpage.extract_text()
Extract tablespdfplumberpage.extract_tables()
Create PDFsreportlabCanvas or Platypus
Command line mergeqpdfqpdf --empty --pages ...
OCR scanned PDFspytesseractConvert to image first
Fill PDF formspdf-lib or pypdf (see forms.md)See forms.md

Next Steps

  • For advanced pypdfium2 usage, see reference.md
  • For JavaScript libraries (pdf-lib), see reference.md
  • If you need to fill out a PDF form, follow the instructions in forms.md
  • For troubleshooting guides, see reference.md

Related Skills

Looking for an alternative to pdf or another community skill for your workflow? Explore these related open-source skills.

View All

openclaw-release-maintainer

Logo of openclaw
openclaw

Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

333.8k
0
AI

widget-generator

Logo of f
f

Generate customizable widget plugins for the prompts.chat feed system

149.6k
0
AI

flags

Logo of vercel
vercel

The React Framework

138.4k
0
Browser

pr-review

Logo of pytorch
pytorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration

98.6k
0
Developer