PDF Processing

SkillFiles & storage

Processes PDF files. Extracts text and tables, fills forms, merges and splits documents, batch-processes files, converts to images, and generates PDFs programmatically. Use when working with .pdf files. Do NOT use for Word documents, spreadsheets, or presentations.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the PDF Processing skill

What this skill tells your AI

The instructions your AI receives, as published by telagod/code-abyss in skills/processing-pdfs/SKILL.md and read by ahel’s review.

Essential PDF operations using Python libraries and CLI tools.

Decision Matrix

TaskBest ToolReference
Merge / split / metadata / rotatepypdfrecipes.md
Extract text (layout preserved)pdfplumberrecipes.md
Extract tablespdfplumberrecipes.md
Create new PDFreportlabrecipes.md
Batch CLI opsqpdf / pdftkrecipes.md
OCR scanned PDFspytesseract + pdf2imageadvanced.md
Add watermark / extract images / encryptpypdf / pdfimagesadvanced.md
Fill PDF formspdf-lib / pypdfFORMS.md
Advanced pypdfium2 / pdf-lib JSREFERENCE.md

Quick Start

from pypdf import PdfReader
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")
text = "".join(page.extract_text() for page in reader.pages)

Workflow

  1. Identify task — text extraction? table? creation? form? Pick row from matrix above.
  2. Load reference — recipes.md covers 90% of tasks; advanced.md for OCR / encrypt; FORMS.md for forms.
  3. Implement — copy-adapt recipe; verify output.
  4. Validate — open in a viewer or grep extracted text.

Library Selection

LibraryUse for
pypdfMerge, split, metadata, encryption, rotation
pdfplumberText extraction with layout, tables
reportlabGenerate PDFs programmatically
pdf2image + pytesseractOCR scanned documents
qpdf / pdftk (CLI)Batch ops, no Python needed

Signals

GitHub stars
239
Forks
32
Last commit
Jul 2026
Advanced
Catalog kind
skill
Gateway key
processing-pdfs
Source
github.com/telagod/code-abyss