* add libreoffice skill and +29 workflow bundles. * Add documentation for workflow bundles Added comprehensive documentation for workflow bundles, detailing granular and consolidated bundles across various development scenarios including frontend, backend, WordPress, system administration, security testing, AI/ML, cloud/DevOps, database, testing/QA, and LibreOffice skills. * add readme for workflow bundles. correct descriptions of libreoffice skills and match them with folder names. * add readme for workflow bundles. correct descriptions of libreoffice skills and match them with folder names. * Simplify LibreOffice skill names in README * Refactor LibreOffice Base skill to LibreOffice Writer Updated the skill from LibreOffice Base to LibreOffice Writer, modifying the name, description, and core capabilities. Adjusted workflows and examples to reflect document creation and automation. * Rename skill from Writer to Base and update capabilities Updated the LibreOffice skill from Writer to Base, reflecting changes in functionality related to database management and operations. * Revise LibreOffice Calc skill details and capabilities Updated the LibreOffice Calc skill description and removed outdated sections. Streamlined capabilities and workflows while maintaining essential information. * Refine LibreOffice Draw skill details and capabilities Updated the LibreOffice Draw skill description and capabilities. Removed flowchart automation example and adjusted related skills. * Refine SKILL.md for LibreOffice Impress Updated the SKILL.md file for LibreOffice Impress to refine the name and description, streamline core capabilities, and adjust related skills. * Refine LibreOffice Writer skill details and capabilities Updated the LibreOffice Writer skill description and capabilities. Simplified the name and improved clarity in the core capabilities section. * chore: sync generated registry files [ci skip] * feat: add Game Development Expansion Bundle (Bevy ECS, GLSL, Godot 4 Migration) --------- Co-authored-by: Munir Abbasi <munir@ayubmed.edu.pk> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
4.1 KiB
4.1 KiB
name, description, source, risk, domain, category, version
| name | description | source | risk | domain | category | version |
|---|---|---|---|---|---|---|
| impress | Presentation creation, format conversion (ODP/PPTX/PDF), slide automation with LibreOffice Impress. | personal | safe | office-productivity | presentation-processing | 1.0.0 |
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