When to use
- Converting PDF documents to editable PowerPoint presentations
- Creating slide decks from PDF reports or documents
- Need high-quality PDF to PPTX conversion with custom DPI
- Want multi-level verbosity logging for debugging conversions
PDF to PowerPoint Converter Skill
Purpose
This skill provides comprehensive guidance for using pdf-to-pptx-tool, a professional CLI tool that converts PDF documents into PowerPoint presentations. Each PDF page becomes a high-quality slide with customizable resolution.
When to Use This Skill
Use this skill when:
- You need to convert PDF documents to PowerPoint format
- You want to customize conversion quality (DPI settings)
- You need to debug conversion issues with verbose logging
- You're working with multi-page PDF documents
- You need programmatic PDF to PPTX conversion in workflows
Do NOT use this skill for:
- Editing existing PowerPoint files (use PowerPoint directly)
- Converting other formats (images, Word docs) to PPTX
- Extracting text from PDFs (use PDF text extraction tools)
- Creating PowerPoint from scratch (use PowerPoint or python-pptx)
CLI Tool: pdf-to-pptx-tool
A modern Python CLI tool built with Click, featuring multi-level verbosity logging, shell completion, and type-safe code.
Installation
git clone https://github.com/dnvriend/pdf-to-pptx-tool.git
cd pdf-to-pptx-tool
uv tool install .
Prerequisites
- Python 3.14+
poppler system library (for PDF rendering)
- macOS:
brew install poppler
- Ubuntu/Debian:
apt-get install poppler-utils
- Windows: Download from poppler releases
Quick Start
pdf-to-pptx-tool convert document.pdf slides.pptx
pdf-to-pptx-tool convert report.pdf presentation.pptx --dpi 300
pdf-to-pptx-tool -v convert input.pdf output.pptx
Progressive Disclosure
convert - Convert PDF to PowerPoint
Converts a PDF document to PowerPoint format, creating one slide per PDF page with customizable quality settings.
Usage:
pdf-to-pptx-tool convert INPUT_PDF OUTPUT_PPTX [OPTIONS]
Arguments:
INPUT_PDF: Path to input PDF file (required)
- Must exist and be a valid PDF file
- Supports any PDF version
- No size limit (memory permitting)
OUTPUT_PPTX: Path to output PowerPoint file (required)
- Will be created or overwritten
- Extension should be
.pptx
- Parent directory must exist
--dpi INTEGER: Resolution for page conversion (optional)
- Default: 200 DPI (good quality, reasonable size)
- Range: 72-600 DPI
- Higher DPI = better quality but larger files
- Recommended: 200-300 for presentations
-v, --verbose: Multi-level verbosity
- No flag: Warnings/errors only
-v: INFO level (operations and progress)
-vv: DEBUG level (detailed steps)
-vvv: TRACE level (library internals)
Examples:
pdf-to-pptx-tool convert quarterly-report.pdf q4-presentation.pptx
pdf-to-pptx-tool convert technical-diagram.pdf slides.pptx --dpi 300
pdf-to-pptx-tool convert draft.pdf preview.pptx --dpi 150
pdf-to-pptx-tool -v convert large-doc.pdf output.pptx
pdf-to-pptx-tool -vv convert problematic.pdf fixed.pptx
for pdf in *.pdf; do
pdf-to-pptx-tool convert "$pdf" "${pdf%.pdf}.pptx"
done
Output:
- Creates PowerPoint file at specified path
- Slide properties:
- Aspect ratio: 16:9 (widescreen)
- Dimensions: 10" ร 5.625"
- Layout: One full-slide image per PDF page
- Background: Transparent
- Console output:
- Success: "โ Successfully converted input.pdf to output.pptx"
- Error: "โ Error: [detailed error message]"
- Exit codes:
- 0: Success
- 1: Error (file not found, invalid input, conversion failed)
completion - Generate shell completion scripts
Generates shell completion scripts for bash, zsh, or fish shells.
Usage:
pdf-to-pptx-tool completion SHELL
Arguments:
SHELL: Shell type (required)
- Options:
bash, zsh, fish
- Case-insensitive
Examples:
eval "$(pdf-to-pptx-tool completion bash)"
eval "$(pdf-to-pptx-tool completion zsh)"
pdf-to-pptx-tool completion fish | source
pdf-to-pptx-tool completion bash > ~/.pdf-to-pptx-tool-completion.bash
echo 'source ~/.pdf-to-pptx-tool-completion.bash' >> ~/.bashrc
Output:
Shell-specific completion script printed to stdout.
Multi-Level Verbosity Logging
The tool supports progressive verbosity levels for debugging and monitoring conversions.
Logging Levels:
| Flag |
Level |
Output |
Use Case |
| (none) |
WARNING |
Errors/warnings only |
Production, quiet mode |
-v |
INFO |
+ Operations, progress |
Normal debugging |
-vv |
DEBUG |
+ Detailed steps, file sizes |
Development, troubleshooting |
-vvv |
TRACE |
+ Library internals (pdf2image, PIL, pptx) |
Deep debugging |
Examples:
pdf-to-pptx-tool convert input.pdf output.pptx
pdf-to-pptx-tool -v convert input.pdf output.pptx
pdf-to-pptx-tool -vv convert input.pdf output.pptx
pdf-to-pptx-tool -vvv convert input.pdf output.pptx
DPI Quality Guidelines
Choose DPI based on your use case:
| DPI |
Quality |
File Size |
Best For |
| 72 |
Low |
Smallest |
Quick previews, draft slides |
| 150 |
Medium |
Small |
Web presentations, email |
| 200 |
Good |
Medium |
Default - recommended for most |
| 300 |
High |
Large |
Print quality, detailed diagrams |
| 600 |
Very High |
Very Large |
Professional print, posters |
Trade-offs:
- Higher DPI: Better quality, larger file size, slower conversion
- Lower DPI: Faster conversion, smaller files, lower quality
- Sweet spot: 200-300 DPI for most presentations
Batch Processing
Process multiple PDFs efficiently:
for pdf in *.pdf; do
echo "Converting $pdf..."
pdf-to-pptx-tool convert "$pdf" "${pdf%.pdf}.pptx"
done
for pdf in *.pdf; do
pdf-to-pptx-tool convert "$pdf" "${pdf%.pdf}.pptx" --dpi 300
done
for pdf in *.pdf; do
if pdf-to-pptx-tool -v convert "$pdf" "${pdf%.pdf}.pptx"; then
echo "โ Converted $pdf"
else
echo "โ Failed to convert $pdf"
fi
done
Shell Completion
Enable tab completion for faster usage:
eval "$(pdf-to-pptx-tool completion bash)"
eval "$(pdf-to-pptx-tool completion zsh)"
mkdir -p ~/.config/fish/completions
pdf-to-pptx-tool completion fish > ~/.config/fish/completions/pdf-to-pptx-tool.fish
Benefits:
- Tab-complete commands:
pdf-to-pptx-tool <TAB>
- Tab-complete options:
pdf-to-pptx-tool convert --<TAB>
- Tab-complete file paths automatically
Common Issues
Issue: "poppler not found" or PDF conversion fails
RuntimeError: Failed to convert PDF pages: poppler not found
Solution:
Install poppler system library:
brew install poppler
sudo apt-get install poppler-utils
sudo dnf install poppler-utils
pdftoppm -v
Issue: "File not found" error
โ Error: Input PDF file not found: document.pdf
Solution:
- Verify file path is correct
- Use absolute paths if needed
- Check file permissions
ls -l document.pdf
pdf-to-pptx-tool convert /full/path/to/document.pdf output.pptx
Issue: Output file is too large
Generated 50MB PPTX from 2MB PDF
Solution:
Reduce DPI setting:
pdf-to-pptx-tool convert input.pdf output.pptx --dpi 150
pdf-to-pptx-tool convert input.pdf output.pptx
Issue: Images look blurry in PowerPoint
Text and diagrams appear pixelated
Solution:
Increase DPI setting:
pdf-to-pptx-tool convert input.pdf output.pptx --dpi 300
pdf-to-pptx-tool convert input.pdf output.pptx --dpi 600
Issue: Conversion is very slow
Large PDF takes minutes to convert
Solution:
- Use DEBUG logging to see progress:
pdf-to-pptx-tool -vv con