pdf-readinglisted
Install: claude install-skill Razshy/Wiggle
# PDF Processing Guide
## Overview
This guide covers essential PDF reading operations using Python libraries and command-line tools. For advanced features (pypdfium2 rendering, pdfplumber table settings, OCR fallback, encrypted/corrupted PDF handling), see REFERENCE.md.
## Reading & Inspecting PDFs
Before doing anything with a PDF, understand what you're working with.
### Content inventory
Run a quick diagnostic first. For simple tasks ("summarize this
document"), `pdfinfo` + `pdffonts` + a text sample may suffice. For
anything involving figures, attachments, or extraction issues, run the
full set:
```bash
# Always: page count, file size, PDF version, metadata
pdfinfo document.pdf
# Always: does a text layer exist? No fonts → scanned/raster → see "Scanned documents"
pdffonts document.pdf
# If fonts are present: sample the text layer
pdftotext -f 1 -l 1 document.pdf - | head -20
# If figures/charts may matter:
pdfimages -list document.pdf
# If the PDF might contain embedded files (reports, portfolios):
pdfdetach -list document.pdf
```
This tells you:
- **Page count and size** — how big is the job?
- **Font status** — are any fonts present? An empty `pdffonts` table
means the PDF is scanned or raster-only: `pdftotext` will return
nothing, so skip straight to "Scanned documents" below. Fonts shown
as not embedded ("emb: no") with custom encodings may produce wrong
characters on extraction.
- **Text extractability** — when fonts exist, does `pdftotext` return