PDF Skill
When To Use
- Read or review PDF content where layout and visuals matter.
- Create PDFs programmatically with reliable formatting.
- Validate final rendering before delivery.
Workflow
- Prefer visual review: render PDF pages to PNGs and inspect them.
- Use
pdftoppm from the bundled runtime or system Poppler when available.
- If unavailable, install Poppler or ask the user to review the output locally.
- Use
reportlab to generate PDFs when creating new documents.
- Use
pdfplumber or pypdf for text extraction and quick checks; do not rely on text extraction for layout fidelity.
- After each meaningful update, re-render pages and verify alignment, spacing, and legibility.
Temp And Output Conventions
- Use
tmp/pdfs/ for intermediate files; delete them when done.
- Write final artifacts under
output/pdf/ when working in this repo.
- Keep filenames stable and descriptive.
Dependencies
Prefer the Codex bundled workspace/runtime dependencies when available. The primary runtime is expected to include:
- Python packages:
reportlab, pdfplumber, pypdf
- Rendering tools:
pdftoppm and pdfinfo from Poppler
If a dependency is missing, install only what is needed.
Python packages:
uv pip install reportlab pdfplumber pypdf
If uv is unavailable:
python3 -m pip install reportlab pdfplumber pypdf
System tools for rendering:
# macOS (Homebrew)
brew install poppler
# Ubuntu/Debian
sudo apt-get install -y poppler-utils
If installation is not possible in this environment, tell the user which dependency is missing and how to install it locally.
Environment
No required environment variables.
Rendering Command
pdftoppm -png "$INPUT_PDF" "$OUTPUT_PREFIX"
Quality Expectations
- Maintain polished visual design: consistent typography, spacing, margins, and section hierarchy.
- Avoid rendering issues: clipped text, overlapping elements, broken tables, black squares, or unreadable glyphs.
- Charts, tables, and images must be sharp, aligned, and clearly labeled.
- Use ASCII hyphens only. Avoid U+2011 and other Unicode dashes.
- Citations and references must be human-readable; never leave tool tokens or placeholder strings.
Final Checks
- Do not deliver until the latest PNG inspection shows zero visual or formatting defects.
- Confirm headers, footers, page numbering, and section transitions look polished.
- Keep intermediate files organized or remove them after final approval.
1---2name: pdf3description: Read, create, inspect, render, and verify PDF files where visual layout matters. Use Poppler rendering plus Python tools such as reportlab, pdfplumber, and pypdf for generation and extraction.4---56# PDF Skill78## When To Use910- Read or review PDF content where layout and visuals matter.11- Create PDFs programmatically with reliable formatting.12- Validate final rendering before delivery.1314## Workflow15161. Prefer visual review: render PDF pages to PNGs and inspect them.17 - Use `pdftoppm` from the bundled runtime or system Poppler when available.18 - If unavailable, install Poppler or ask the user to review the output locally.192. Use `reportlab` to generate PDFs when creating new documents.203. Use `pdfplumber` or `pypdf` for text extraction and quick checks; do not rely on text extraction for layout fidelity.214. After each meaningful update, re-render pages and verify alignment, spacing, and legibility.2223## Temp And Output Conventions2425- Use `tmp/pdfs/` for intermediate files; delete them when done.26- Write final artifacts under `output/pdf/` when working in this repo.27- Keep filenames stable and descriptive.2829## Dependencies3031Prefer the Codex bundled workspace/runtime dependencies when available. The primary runtime is expected to include:3233- Python packages: `reportlab`, `pdfplumber`, `pypdf`34- Rendering tools: `pdftoppm` and `pdfinfo` from Poppler3536If a dependency is missing, install only what is needed.3738Python packages:3940```bash41uv pip install reportlab pdfplumber pypdf42```4344If `uv` is unavailable:4546```bash47python3 -m pip install reportlab pdfplumber pypdf48```4950System tools for rendering:5152```bash53# macOS (Homebrew)54brew install poppler5556# Ubuntu/Debian57sudo apt-get install -y poppler-utils58```5960If installation is not possible in this environment, tell the user which dependency is missing and how to install it locally.6162## Environment6364No required environment variables.6566## Rendering Command6768```bash69pdftoppm -png "$INPUT_PDF" "$OUTPUT_PREFIX"70```7172## Quality Expectations7374- Maintain polished visual design: consistent typography, spacing, margins, and section hierarchy.75- Avoid rendering issues: clipped text, overlapping elements, broken tables, black squares, or unreadable glyphs.76- Charts, tables, and images must be sharp, aligned, and clearly labeled.77- Use ASCII hyphens only. Avoid U+2011 and other Unicode dashes.78- Citations and references must be human-readable; never leave tool tokens or placeholder strings.7980## Final Checks8182- Do not deliver until the latest PNG inspection shows zero visual or formatting defects.83- Confirm headers, footers, page numbering, and section transitions look polished.84- Keep intermediate files organized or remove them after final approval.