pdf

Extract text and tables, fill forms, and create or modify PDF documents.

Updated Jun 8, 2026
One-click install
npx skills add https://github.com/Avistian/nba --skill pdf-avistian
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: pdf
Source: https://github.com/Avistian/nba/tree/main/.cursor/skills/pdf
Command: npx skills add https://github.com/Avistian/nba --skill pdf-avistian

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pypdf, 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 command-line tools, and filling PDF forms—especially ones without fillable fields—requires tedious manual coordinate work. This Skill consolidates PDF manipulation into one toolkit with ready-to-run scripts and reference guides. ## Core Features & Use Cases - Text and Table Extraction: Pull text, tables, and metadata from PDFs using pypdf, pdfplumber, and poppler-utils, with OCR support for scanned documents. - PDF Form Filling: Detect fillable form fields, extract their structure to JSON, and fill them programmatically; for non-fillable forms, visually determine bounding boxes and add text annotations with validation. - Document Creation and Manipulation: Merge, split, rotate, encrypt, watermark, and create PDFs from scratch using pypdf, reportlab, qpdf, and pdf-lib. - Use Case: You receive a stack of non-fillable PDF application forms. The Skill converts pages to images, guides bounding-box annotation with validation checks, and outputs completed PDFs. ## Quick Start Use the pdf skill to extract all tables from the attached report.pdf and save them to 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 tables from a PDF in Python?▼

Use pdfplumber's page.extract_tables() method to detect and extract tables from each page. The results can be loaded into pandas DataFrames and exported to Excel or CSV for further analysis.

How do I fill a PDF form that has no fillable fields?▼

Convert the PDF pages to PNG images, visually determine bounding boxes for each field, record them in a fields.json file, validate the boxes with the check_bounding_boxes.py script, then add text annotations using fill_pdf_form_with_annotations.py.

What is the difference between pypdf and pdfplumber?▼

pypdf handles structural operations like merging, splitting, rotating, metadata, and form field updates. pdfplumber specializes in extracting text with layout information and detecting tables within pages.

Can I extract text from a scanned PDF?▼

Scanned PDFs contain images rather than text layers, so standard parsers return nothing. Convert pages to images with pdf2image and run OCR with pytesseract to recover the text.

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'. pypdf's PdfWriter achieves the same in Python.

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

Some viewers fail to render form values without appearance streams. The fill_fillable_fields.py script calls set_need_appearances_writer(True) so viewers regenerate field appearances, though some may show a save-changes prompt.