pdf

Create, merge, split, fill, and encrypt PDF files using Python libraries and CLI tools.

16|Updated Sep 22, 2026
One-click install
npx skills add https://github.com/igniteenow/robo --skill pdf-igniteenow
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: pdf
Source: https://github.com/igniteenow/robo/tree/main/skills/productivity/pdf
Command: npx skills add https://github.com/igniteenow/robo --skill pdf-igniteenow

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pypdf, pdfplumber, reportlab, pdf2image, pytesseract, 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 command-line tools, and tasks like merging documents, filling forms, or extracting tables each require different approaches and pitfalls knowledge. ## Core Features & Use Cases - PDF Manipulation: Merge, split, rotate, watermark, encrypt, and decrypt PDFs with pypdf and qpdf. - Content Extraction & Creation: Extract text and tables with pdfplumber and pdftotext, and generate new PDFs with reportlab. - Form Filling Workflow: Detect AcroForm fields, fill fillable forms programmatically, or overlay text annotations on flat scanned forms with coordinate validation. - Use Case: Given a stack of signed contract PDFs, merge them into one file, extract key dates and names into a table, and deliver a password-protected combined document. ## Quick Start Use the pdf skill to merge the three attached PDF reports into a single file and extract the summary table from page two.

Frequently Asked Questions about pdf

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

FAQPage Schema
How do I merge multiple PDF files in Python?▼

Use pypdf's PdfWriter to merge PDFs by iterating over each file's pages with PdfReader and calling add_page, then writing the result to a new file. Alternatively, run qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf from the command line.

How to fill a PDF form programmatically?▼

First run check_fillable_fields.py to detect AcroForm fields. For fillable PDFs, extract field info to JSON and use fill_fillable_fields.py with a field_values.json file. For flat forms, overlay text annotations using coordinates validated by check_bounding_boxes.py.

What is the difference between pdfplumber and pypdf for text extraction?▼

pdfplumber provides layout-aware text and table extraction with precise coordinates, making it better for structured data. pypdf handles general page manipulation like merging and encryption but returns None for extract_text on image-only pages.

Does PDF text extraction work on scanned documents?▼

No, standard parsers return empty results on image-only pages. Convert pages to images with pdf2image and run pytesseract OCR, or use a dedicated OCR skill with pymupdf or marker-pdf for batch structured extraction.

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

Reportlab's built-in fonts lack glyphs for Unicode subscript and superscript characters like ₀ or ⁰. Use <sub> and <super> markup inside Paragraph objects instead, or manually adjust font size and position for canvas-drawn text.

How do I remove a password from an encrypted PDF?▼

Run qpdf --password=pw --decrypt encrypted.pdf decrypted.pdf from the command line. In Python, open the file with PdfReader(path, password=...) before accessing its pages, since pypdf preserves encryption flags.