impress
Presentation creation, format conversion (ODP/PPTX/PDF), slide automation with LibreOffice Impress.
- category
- presentation-processing
- risk
- safe
- source
- personal
- date added
- 2026-02-27
LibreOffice Impress
Overview
LibreOffice Impress skill for creating, editing, converting, and automating presentation workflows using the native ODP (OpenDocument Presentation) format.
When to Use This Skill
Use this skill when:
- Creating new presentations in ODP format
- Converting between ODP, PPTX, PDF formats
- Automating slide generation from templates
- Batch processing presentation operations
- Creating presentation templates
Core Capabilities
1. Presentation Creation
- Create new ODP presentations from scratch
- Generate presentations from templates
- Create slide masters and layouts
- Build interactive presentations
2. Format Conversion
- ODP to other formats: PPTX, PDF, HTML, SWF
- Other formats to ODP: PPTX, PPT, PDF
- Batch conversion of multiple files
3. Slide Automation
- Template-based slide generation
- Batch slide creation from data
- Automated content insertion
- Dynamic chart generation
4. Content Manipulation
- Text and image insertion
- Shape and diagram creation
- Animation and transition control
- Speaker notes management
5. Integration
- Command-line automation via soffice
- Python scripting with UNO
- Integration with workflow tools
Workflows
Creating a New Presentation
Method 1: Command-Line
soffice --impress template.odp
Method 2: Python with UNO
import uno def create_presentation(): local_ctx = uno.getComponentContext() resolver = local_ctx.ServiceManager.createInstanceWithContext( "com.sun.star.bridge.UnoUrlResolver", local_ctx ) ctx = resolver.resolve( "uno:socket,host=localhost,port=8100;urp;StarOffice.ComponentContext" ) smgr = ctx.ServiceManager doc = smgr.createInstanceWithContext("com.sun.star.presentation.PresentationDocument", ctx) slides = doc.getDrawPages() slide = slides.getByIndex(0) doc.storeToURL("file:///path/to/presentation.odp", ()) doc.close(True)
Converting Presentations
# ODP to PPTX soffice --headless --convert-to pptx presentation.odp # ODP to PDF soffice --headless --convert-to pdf presentation.odp # PPTX to ODP soffice --headless --convert-to odp presentation.pptx # Batch convert for file in *.odp; do soffice --headless --convert-to pdf "$file" done
Template-Based Generation
import subprocess import tempfile from pathlib import Path def generate_from_template(template_path, content, output_path): with tempfile.TemporaryDirectory() as tmpdir: subprocess.run(['unzip', '-q', template_path, '-d', tmpdir]) content_file = Path(tmpdir) / 'content.xml' content_xml = content_file.read_text() for key, value in content.items(): content_xml = content_xml.replace(f'${{{key}}}', str(value)) content_file.write_text(content_xml) subprocess.run(['zip', '-rq', output_path, '.'], cwd=tmpdir) return output_path
Format Conversion Reference
Supported Input Formats
- ODP (native), PPTX, PPT, PDF
Supported Output Formats
- ODP, PPTX, PDF, HTML, SWF
Command-Line Reference
soffice --headless soffice --headless --convert-to <format> <file> soffice --impress # Impress
Python Libraries
pip install ezodf # ODF handling pip install odfpy # ODF manipulation
Best Practices
- Use slide masters for consistency
- Create templates for recurring presentations
- Embed fonts for PDF distribution
- Use vector graphics when possible
- Store ODP source files in version control
- Test conversions thoroughly
- Keep file sizes manageable
Troubleshooting
Cannot open socket
killall soffice.bin soffice --headless --accept="socket,host=localhost,port=8100;urp;"
Resources
Related Skills
- writer
- calc
- draw
- base
- pptx-official
- workflow-automation