Opens an existing PDF, applies formatting changes based on specifications, and creates a new formatted PDF. Use when the user needs to reformat or fix PDF formatting issues.
Skill dir: ~/.claude/skills/pdf-formatter/
App: ~/.claude/skills/pdf-formatter/pdf_formatter.py
Venv: ~/.claude/skills/pdf-formatter/venv/
$ARGUMENTS[0] = input PDF path (required; ask if missing)[original-name]_formatted.pdf in same dirRead the PDF with Read tool to inspect visually. Confirm it exists and understand current formatting issues.
~/.claude/skills/pdf-formatter/venv/bin/python \
~/.claude/skills/pdf-formatter/pdf_formatter.py \
"<input>" "<output>" [OPTIONS]
Options: --no-fix-bullets (skip bullet restoration, on by default)
The app: extracts text with style info (bold, font size, position), parses resume structure (name, contact, summary, experience, education, skills), restores flattened bullets (- patterns collapsed into paragraphs), fixes word-break hyphens split across lines, fixes date ranges split across pages, generates new PDF via ReportLab.
Read the generated PDF visually. Report original vs new file sizes. Summarize changes.
# Compression
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
# Page size
gs -o output.pdf -sDEVICE=pdfwrite -sPAPERSIZE=a4 input.pdf
# Rotation
pdftk input.pdf cat 1-endeast output output.pdf
python3 -m venv ~/.claude/skills/pdf-formatter/venv && ~/.claude/skills/pdf-formatter/venv/bin/pip install -r ~/.claude/skills/pdf-formatter/requirements.txt