Skill

Automate LibreOffice Impress Presentations

LibreOffice Impress skill for creating, converting, and automating ODP presentations via soffice CLI or Python UNO.

Works with libreoffice

71
Spark score
out of 100
Updated last month
Version 13.1.1

Add to Favorites

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

01

Create new ODP presentations from scratch or templates.

02

Convert presentations between ODP, PPTX, and PDF formats.

03

Automate slide generation and content insertion.

04

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.