
Description
Use when tasks involve reading, creating, or reviewing PDF files where rendering and layout matter; prefer visual checks by rendering pages (Poppler) and use Python tools such as `reportlab`, `pdfplumber`, and `pypdf` for generation and extraction. Originally from OpenAI's curated skills catalog.
SKILL.md
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
pdftoppmif available. - If unavailable, install Poppler or ask the user to review the output locally.
- Use
- Use
reportlabto generate PDFs when creating new documents. - Use
pdfplumber(orpypdf) for text extraction and quick checks; do not rely on it 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 when done. - Write final artifacts under
output/pdf/when working in this repo. - Keep filenames stable and descriptive.
Dependencies (install if missing)
Prefer uv for dependency management.
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 isn't 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 (non-breaking hyphen) 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.
When NOT to Use
More skills from the skills-curated repository
View all 31 skillsffuf-web-fuzzing
perform web fuzzing with ffuf
Jul 17Code AnalysisSecurityTestingghidra-headless
reverse engineer binaries with Ghidra
Jul 18Code AnalysisDebuggingSecuritygrilling
stress-test plans and decisions
Jul 18AnalysisCoachingIdeationStrategyhandoff
compact conversation for session handoff
Jul 18AgentsContextProductivityhumanizer
edit text to sound human-written
Jul 18Content CreationEditingWritinglast30days
research recent community discussions and trends
Jul 17AnalysisResearchSocial Media
More from Trail of Bits
View publisheraddress-sanitizer
detect memory errors during fuzzing
skills
Jul 17C#DebuggingSecurityTestingaflpp
perform multi-core fuzzing of C/C++ projects
skills
Jul 17C#SecurityTestingagentic-actions-auditor
audit GitHub Actions for security vulnerabilities
skills
Jul 18AgentsCI/CDCode AnalysisGitHub Actions +1algorand-vulnerability-scanner
scan Algorand smart contracts for vulnerabilities
skills
Jul 18AuditCode AnalysisSecuritySmart Contractsask-questions-if-underspecified
clarify requirements before implementation
skills
Jul 17EngineeringProductivityatheris
fuzz Python code with Atheris
skills
Jul 17PythonSecurityTesting