← ClaudeAtlas

pdf-readinglisted

Use this skill when you need to read, inspect, or extract content from PDF files — especially when file content is NOT in your context and you need to read it from disk. Covers content inventory, text extraction, page rasterization for visual inspection, embedded image/attachment/table/form-field extraction, and choosing the right reading strategy for different document types (text-heavy, scanned, slide-decks, forms, data-heavy). Do NOT use this skill for PDF creation, form filling, merging, splitting, watermarking, or encryption — use the pdf skill instead.
Razshy/Wiggle · ★ 76 · Data & Documents · score 76
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