Agent skill

impress

Presentation creation, format conversion (ODP/PPTX/PDF), slide automation with LibreOffice Impress.

Stars 232
Forks 15

Install this agent skill to your Project

npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/sickn33/impress

SKILL.md

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

bash
soffice --impress template.odp

Method 2: Python with UNO

python
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

bash
# 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

python
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

bash
soffice --headless
soffice --headless --convert-to <format> <file>
soffice --impress  # Impress

Python Libraries

bash
pip install ezodf     # ODF handling
pip install odfpy     # ODF manipulation

Best Practices

  1. Use slide masters for consistency
  2. Create templates for recurring presentations
  3. Embed fonts for PDF distribution
  4. Use vector graphics when possible
  5. Store ODP source files in version control
  6. Test conversions thoroughly
  7. Keep file sizes manageable

Troubleshooting

Cannot open socket

bash
killall soffice.bin
soffice --headless --accept="socket,host=localhost,port=8100;urp;"

Resources

Related Skills

  • writer
  • calc
  • draw
  • base
  • pptx-official
  • workflow-automation

Expand your agent's capabilities with these related and highly-rated skills.

aiskillstore/marketplace

perigon-backend

Perigon ASP.NET Core + EF Core + Aspire conventions

232 15
Explore
aiskillstore/marketplace

perigon-agent

Pointers for Copilot/agents to apply Perigon conventions

232 15
Explore
aiskillstore/marketplace

perigon-angular

Angular 21+ standalone/Material/signal conventions for Perigon WebApp

232 15
Explore
aiskillstore/marketplace

fastapi-mastery

Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.

232 15
Explore
aiskillstore/marketplace

context7-efficient

Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.

232 15
Explore
aiskillstore/marketplace

browser-use

Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.

232 15
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results