mcpField
P
pdf

pdf

github.com/moizibnyousafDocuments1.2k130 installsUpdated 6w ago
Repository

About pdf

A reference skill guide for processing PDFs with Python libraries and command-line utilities. It covers reading, merging, splitting, extracting text and tables, and creating PDFs, with a brief OCR reference.

Key features

  1. 01Read PDFs and count pages
  2. 02Merge or split PDF files
  3. 03Extract text and tables
  4. 04Create PDFs with reportlab
  5. 05Reference OCR with pytesseract

Use cases

  1. 01Extract text from PDF documents
  2. 02Collect tables from PDF pages
  3. 03Combine or separate PDF files
  4. 04Generate a PDF from Python

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/moizibnyousaf/ai-agent-skills --skill pdf

After installing, type/pdfin Claude Code to confirm it loaded.

Details

From the project README

PDF Processing Guide

Quick Start

from pypdf import PdfReader, PdfWriter

# Read a PDF
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")

# Extract text
text = ""
for page in reader.pages:
    text += page.extract_text()

Python Libraries

pypdf - Basic Operations
Merge PDFs
from pypdf import PdfWriter, PdfReader

writer = PdfWriter()
for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]:
    reader = PdfReader(pdf_file)
    for page in reader.pages:
        writer.add_page(page)

with open("merged.pdf", "wb") as output:
    writer.write(output)
Split PDF
reader = PdfReader("input.pdf")
for i, page in enumerate(reader.pages):
    writer = PdfWriter()
    writer.add_page(page)
    with open(f"page_{i+1}.pdf", "wb") as output:
        writer.write(output)
pdfplumber - Text and Table Extraction
Extract Tables
import pdfplumber
import pandas as pd

with pdfplumber.open("document.pdf") as pdf:
    all_tables = []
    for page in pdf.pages:
        tables = page.extract_tables()
        for table in tables:
            if table:
                df = pd.DataFrame(table[1:], columns=table[0])
                all_tables.append(df)
reportlab - Create PDFs
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

c = canvas.Canvas("hello.pdf", pagesize=letter)
width, height = letter
c.drawString(100, height - 100, "Hello World!")
c.save()

Command-Line Tools

# Extract text (poppler-utils)
pdftotext input.pdf output.txt

# Merge PDFs (qpdf)
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf

# Split pages
qpdf input.pdf --pages . 1-5 -- pages1-5.pdf

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
OCR scanned PDFspytesseractConvert to image first

Comments

Markdown supported