pdf

Extract, merge, split, create, and fill PDF documents using Python libraries and command-line tools.

13|1|Updated Feb 9, 2026
One-click install
npx skills add https://github.com/vedang/dotagents --skill pdf-vedang
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: pdf
Source: https://github.com/vedang/dotagents/tree/main/skills/pdf
Command: npx skills add https://github.com/vedang/dotagents --skill pdf-vedang

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pypdf, pdfplumber, pdf2image, Pillow, and includes scripts (resource) and references (resource) components.

What problem does it solve? Working with PDF files programmatically is fragmented across many libraries and tools, making tasks like text extraction, form filling, merging, and OCR error-prone and time-consuming without clear guidance. ## Core Features & Use Cases - PDF Manipulation: Merge, split, rotate, encrypt, decrypt, watermark, and crop PDFs using pypdf, qpdf, and pdftk. - Content Extraction: Extract text, tables, metadata, and embedded images with pdfplumber, pypdfium2, and poppler-utils, including OCR for scanned documents via pytesseract. - PDF Creation: Generate new PDFs with reportlab or the JavaScript pdf-lib library, including styled tables and reports. - Form Filling: Fill both fillable AcroForm fields and non-fillable forms using structure extraction, coordinate validation, and annotation scripts. - Use Case: Given a stack of scanned application forms, convert them to images, determine field coordinates, validate bounding boxes, and produce filled PDFs automatically. ## Quick Start Use the pdf skill to merge the three attached PDF reports into a single document and extract the tables from page two into a spreadsheet.

Frequently Asked Questions about pdf

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I extract text and tables from a PDF in Python?

Use pdfplumber to extract text with layout preservation and tables via page.extract_text() and page.extract_tables(). For simple text extraction, pypdf's page.extract_text() or the pdftotext command-line tool also work.

How do I fill out a PDF form programmatically?

First run check_fillable_fields.py to detect fillable fields. For fillable PDFs, extract field info and use fill_fillable_fields.py with a JSON of values. For non-fillable PDFs, extract form structure, define bounding boxes, and fill with text annotations.

What is the difference between pypdf and pdfplumber?

pypdf handles structural operations like merging, splitting, rotating, and encryption, while pdfplumber specializes in extracting text and tables with precise layout and coordinate information. They are often used together.

Can I extract text from a scanned PDF?

Scanned PDFs contain images rather than text layers, so standard parsers fail. Convert pages to images with pdf2image, then run OCR with pytesseract to produce searchable text.

Why do subscript characters render as black boxes in reportlab PDFs?

ReportLab's built-in fonts lack Unicode subscript and superscript glyphs, so those characters render as solid boxes. Use the <sub> and <super> XML markup tags inside Paragraph objects instead.

How do I merge or split PDFs from the command line?

Use qpdf: merge with 'qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf' and split page ranges with 'qpdf input.pdf --pages . 1-5 -- output.pdf'. pdftk offers similar cat and burst operations.