pdf

Create, read, merge, fill, and encrypt PDF files using pypdf, reportlab, and pdfplumber.

Updated Sep 20, 2026
One-click install
npx skills add https://github.com/GreenyZA/neo-light --skill pdf-greenyza
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: pdf
Source: https://github.com/GreenyZA/neo-light/tree/main/.hermes-home/skills/productivity/pdf
Command: npx skills add https://github.com/GreenyZA/neo-light --skill pdf-greenyza

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Working with PDFs programmatically is fragmented across many libraries and error-prone tasks: generating documents, extracting text and tables, building fillable forms, merging files, and handling encryption each require different tools and careful handling of edge cases like scanned pages and form appearance streams. ## Core Features & Use Cases - PDF Creation and Forms: Generate multi-page documents from JSON specs with reportlab, and build fillable AcroForm forms (text, checkbox, radio, dropdown) with layout linting and visual overlay review before building. - Extraction and Manipulation: Extract per-page text, tables to JSON/CSV, metadata, and form-field values; merge, split, rotate, watermark, stamp text or images at coordinates, and export pages as PNGs. - Security and Metadata: Encrypt and decrypt with AES-256 passwords, set or clear DocInfo metadata, and embed or extract file attachments. - Use Case: Build an intake form from a JSON spec, lint the layout, fill it with submitted data, flatten it, then encrypt the result with a user password for delivery. ## Quick Start Ask the agent to extract the text and tables from a PDF file, or to create a PDF report from a JSON spec using the scripts in this skill.

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?▼

Run pdf_read.py with --text for per-page text via pdfplumber, or --tables to get row arrays per page with optional CSV export via --csv-dir. Results print as JSON to stdout, and --meta reports page sizes, encryption, and scanned-page flags.

How do I create a fillable PDF form with Python?▼

Write a JSON form spec with label_box and entry_box coordinates in PDF points, lint it with pdf_form_layout.py, then build it with pdf_make_form.py using reportlab's acroForm. Supported field types are text, checkbox, radio, and dropdown.

Can pypdf extract text from scanned PDF documents?▼

No, scanned PDFs have no text layer, so extraction returns empty strings. The --meta flag reports likely_scanned_pages; export those pages with pdf_page_image.py at 300 DPI and hand the PNGs to an OCR skill instead.

How do I encrypt or decrypt a PDF with a password?▼

Use pdf_secure.py --encrypt with --user-password and optionally --owner-password for AES-256 encryption, or --decrypt with --password to write an unencrypted copy. Note that permission flags are advisory; only the user password actually gates content.

Why do filled PDF form values not display in some viewers?▼

Viewers only render values when appearance streams exist. The fill script sets the AcroForm NeedAppearances flag so conforming viewers regenerate them, but minimal viewers may ignore it; flatten the form if display fidelity matters.

What are the limitations of PDF compression with pypdf?▼

The --compress option only deflates content streams, typically saving 0-20%. It does nothing for image-dominated or already-compressed PDFs and is not a substitute for image downsampling, which requires tools like Ghostscript.