This skill converts PDF files into PowerPoint presentations by first rendering each PDF page as a high-quality image, then assembling those images into a PPT where each image fills a slide. This approach works well for PDFs that are primarily visual (e.g., design drawings, presentations scanned to PDF, etc.) and preserves the visual layout faithfully.
Use this skill when you need to:
PyMuPDF (fitz) and python-pptx.To install this skill from a local path (after copying to your skills folder), you can use:
bash
clawhub install /path/to/pdf-to-ppt
Or if you have cloned the skill repository:
bash
clawhub install pdf-to-ppt
bash
python3 scripts/pdf_to_ppt.py input.pdf
This will:
images/ subdirectory next to the input PDF (or use a specified directory)..pptx, in the same directory as the input.bash
python3 scripts/pdf_to_ppt.py input.pdf \
--img-dir /path/to/images \
--output output.pptx \
--zoom 3.0 \
--slide-width-in 16 \
--slide-height-in 9 \
--format png
input.pdf: Path to the source PDF file (required).--img-dir DIR: Directory to store intermediate images. If not provided, defaults to <pdf_dir>/images/.--output PPTX: Path for the output PPT file. If not provided, defaults to <pdf_basename>.pptx in the same directory as input PDF.--zoom ZOOM: Zoom factor for rendering (default 2.0). Higher = higher DPI.--slide-width-in INCHES: Width of slides in inches (default 13.33 for 16:9 at 7.5in height).--slide-height-in INCHES: Height of slides in inches (default 7.5).--format {png,jpg}: Image format for intermediates (default png).bash
python3 scripts/pdf_to_ppt.py report.pdf \
--img-dir ./tmp/imgs \
--output ./presentation.pptx \
--zoom 2.5 \
--format jpg
Check Image Quality: After conversion, open the generated PPT and review a few slides. If text appears blurry, increase --zoom.
File Size: Higher zoom and PNG format increase both image and final PPT size. Use JPG for smaller files if slight compression artifacts are acceptable.
Post-Processing: The PPT is fully editable in PowerPoint. You can:
Batch Processing: Wrap the script in a loop for multiple PDFs: bash
for pdf in *.pdf; do
python3 scripts/pdf_to_ppt.py "$pdf"
done
ModuleNotFoundError for fitz or pptx: Ensure dependencies are installed. Run: bash
pip install --break-system-packages PyMuPDF python-pptx
(Add --break-system-packages if using system Python in a restricted environment.)
Empty Images: Verify the PDF is not empty and that PyMuPDF can open it. Try opening the PDF in a viewer to confirm it has content.
Memory Issues: Very large PDFs with high zoom may consume significant RAM. Process in batches or reduce zoom.
Consider combining with:
pdf-tools — for extracting text, merging, splitting PDFs before conversion.powerpoint-pptx — for best practices on editing and styling the resulting PPT.images — if you need to process the intermediate images further.If you find this skill useful, consider starring it on ClawHub: clawhub star pdf-to-ppt
For issues or enhancements, please refer to the skill’s source repository.
This skill was created to automate PDF → image → PPT conversion for visual-rich documents.