Presentations to Images¶
Convert PowerPoint and Keynote presentations to high-quality images.
Basic Conversion¶
Convert slides to images with automatic cropping:
from figwizz import slides_to_images
slides_to_images(
input_path='presentation.pptx',
output_path='figures/',
crop_images=True
)
This works with:
- PowerPoint files (.ppt, .pptx)
- Keynote files (.key) on macOS
Custom Filenames¶
Specify a naming pattern:
slides_to_images(
input_path='talk.key',
output_path='slides/',
filename_format='slide{:02d}.png' # slide01.png, slide02.png, ...
)
Cropping Options¶
Control whitespace cropping and margins:
slides_to_images(
input_path='presentation.pptx',
output_path='figures/',
crop_images=True,
margin_size='0.5cm', # Add 0.5cm margin after cropping
dpi=300 # High quality output
)
Without Cropping¶
Skip the automatic cropping:
Manual Cropping¶
Crop whitespace from existing images:
from figwizz.stitchkit import crop_whitespace
# Single image
crop_whitespace(
image_path='slide.png',
output_path='cropped_slide.png',
margin_size='1cm',
dpi=300
)
# Directory of images
crop_whitespace(
image_path='slides/', # Directory
margin_size='0.5cm'
)
Converting to PDF¶
Convert slides to individual PDFs:
from figwizz.stitchkit import convert_to_pdf
# Single image to PDF
convert_to_pdf('slide1.png', dpi=300)
# Directory of images to PDFs
convert_to_pdf('figures/', dpi=300)
Platform Support¶
macOS¶
Uses AppleScript (built-in):
# PowerPoint
slides_to_images('presentation.pptx', 'output/')
# Keynote
slides_to_images('presentation.key', 'output/')
Requirements:
- Microsoft PowerPoint (for .ppt/.pptx)
- Keynote (for .key)
Windows¶
Uses COM interface:
Requirements: - Microsoft PowerPoint installed
Linux¶
Uses LibreOffice command-line:
Complete Workflow¶
Full workflow from presentation to publication-ready figures:
from figwizz import slides_to_images
from figwizz.stitchkit import convert_to_pdf
# 1. Convert slides to images
slides_to_images(
input_path='conference_talk.pptx',
output_path='figures/',
filename_format='figure{:01d}.png',
crop_images=True,
margin_size='1cm',
dpi=300
)
# 2. Convert to PDF for publication
convert_to_pdf('figures/', dpi=300)
print("Figures ready for publication!")
Batch Processing¶
Process multiple presentations:
from pathlib import Path
from figwizz import slides_to_images
presentations = Path('presentations')
for pptx in presentations.glob('*.pptx'):
output_dir = Path('figures') / pptx.stem
slides_to_images(
str(pptx),
str(output_dir),
crop_images=True,
margin_size='1cm'
)
Advanced: ImageMagick Conversion¶
For even more control, use ImageMagick:
from figwizz.stitchkit import mogrify_images_to_pdf
# Requires ImageMagick installed
mogrify_images_to_pdf('figures/', pdf_only=True)
Troubleshooting¶
macOS Permission Issues¶
If AppleScript fails: 1. Open System Preferences → Security & Privacy → Privacy 2. Grant Terminal/IDE access to "System Events" 3. Grant access to PowerPoint/Keynote
Windows COM Errors¶
If conversion fails:
1. Ensure PowerPoint is installed
2. Run Python as administrator
3. Check pywin32 is installed: pip install pywin32
Linux LibreOffice Not Found¶
If soffice command not found:
See Also¶
- Installation - Platform setup
- Image Conversion - Converting output images
- API Reference - Complete API documentation