Automate LibreOffice Impress Presentations
LibreOffice Impress skill for creating, converting, and automating ODP presentations via soffice CLI or Python UNO.
Why it matters
Streamline your presentation creation and management. Automate the generation, editing, and conversion of LibreOffice Impress presentations using ODP, PPTX, and PDF formats.
Outcomes
What it gets done
Create new ODP presentations from scratch or templates.
Convert presentations between ODP, PPTX, and PDF formats.
Automate slide generation and content insertion.
Perform batch processing of presentation operations.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-impress | bash Overview
LibreOffice Impress
LibreOffice Impress skill for creating, converting, and automating ODP presentations via the soffice command line or Python UNO scripting, including template-based slide generation. Use for creating ODP presentations, converting between ODP/PPTX/PDF, or batch-automating slide generation from templates.
What it does
LibreOffice Impress skill for creating, editing, converting, and automating presentation workflows in the native ODP (OpenDocument Presentation) format. It covers presentation creation from scratch or from templates (including slide masters, layouts, and interactive presentations), format conversion between ODP and PPTX, PPT, PDF, HTML, or SWF, slide automation (template-based generation, batch slide creation from data, automated content insertion, dynamic chart generation), content manipulation (text/image insertion, shapes and diagrams, animation and transition control, speaker notes management), and integration via command-line soffice automation, Python scripting with UNO, or workflow-tool integration.
When to use - and when NOT to
Use it when creating new presentations in ODP format, converting between ODP, PPTX, and PDF, automating slide generation from templates, batch-processing presentation operations, or creating presentation templates.
Inputs and outputs
Create a presentation from the command line with soffice --impress template.odp, or programmatically with Python and 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)
Convert between formats headlessly:
soffice --headless --convert-to pptx presentation.odp
The same pattern applies for PDF output and PPTX-to-ODP conversion, including batch conversion by looping over *.odp files. Template-based generation works by unzipping an ODP template, replacing ${key} placeholders in its content.xml with supplied values, and re-zipping the result. Supported input formats are ODP (native), PPTX, PPT, and PDF; supported output formats are ODP, PPTX, PDF, HTML, and SWF. If the UNO socket connection fails ('cannot open socket'), kill any running soffice.bin process and restart it listening on the socket before retrying. Best practices: use slide masters for consistency, build templates for recurring presentations, embed fonts for PDF distribution, prefer vector graphics, store ODP source files in version control, test conversions thoroughly, and keep file sizes manageable.
Integrations
Automated via the soffice command line, Python's UNO bridge (a socket connection on localhost:8100), and the ezodf/odfpy Python libraries for ODF file handling and manipulation. It overlaps with the related writer, calc, draw, base, pptx-official, and workflow-automation skills, and points to the official LibreOffice Impress Guide and UNO API Reference documentation for deeper reference.
Who it's for
Developers and automation engineers who need to generate, convert, or batch-process presentations programmatically rather than manually in a GUI, especially where a native ODP-based, scriptable format is preferred.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.