[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-051b81c0-9431-460b-bd3c-501d11e83faa":3,"$fLb-VZtSmYSPp3Eo_G7IljmHVTc3cdK_h-s_pg2l_MRY":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"051b81c0-9431-460b-bd3c-501d11e83faa","impress","演示文稿创建，格式转换（ODP\u002FPPTX\u002FPDF），使用LibreOffice Impress的幻灯片自动化。","cat_design_graphic","mod_design","sickn33,design","---\nname: impress\ndescription: \"Presentation creation, format conversion (ODP\u002FPPTX\u002FPDF), slide automation with LibreOffice Impress.\"\ncategory: presentation-processing\nrisk: safe\nsource: personal\ndate_added: \"2026-02-27\"\n---\n\n# LibreOffice Impress\n\n## Overview\n\nLibreOffice Impress skill for creating, editing, converting, and automating presentation workflows using the native ODP (OpenDocument Presentation) format.\n\n## When to Use This Skill\n\nUse this skill when:\n- Creating new presentations in ODP format\n- Converting between ODP, PPTX, PDF formats\n- Automating slide generation from templates\n- Batch processing presentation operations\n- Creating presentation templates\n\n## Core Capabilities\n\n### 1. Presentation Creation\n- Create new ODP presentations from scratch\n- Generate presentations from templates\n- Create slide masters and layouts\n- Build interactive presentations\n\n### 2. Format Conversion\n- ODP to other formats: PPTX, PDF, HTML, SWF\n- Other formats to ODP: PPTX, PPT, PDF\n- Batch conversion of multiple files\n\n### 3. Slide Automation\n- Template-based slide generation\n- Batch slide creation from data\n- Automated content insertion\n- Dynamic chart generation\n\n### 4. Content Manipulation\n- Text and image insertion\n- Shape and diagram creation\n- Animation and transition control\n- Speaker notes management\n\n### 5. Integration\n- Command-line automation via soffice\n- Python scripting with UNO\n- Integration with workflow tools\n\n## Workflows\n\n### Creating a New Presentation\n\n#### Method 1: Command-Line\n```bash\nsoffice --impress template.odp\n```\n\n#### Method 2: Python with UNO\n```python\nimport uno\n\ndef create_presentation():\n    local_ctx = uno.getComponentContext()\n    resolver = local_ctx.ServiceManager.createInstanceWithContext(\n        \"com.sun.star.bridge.UnoUrlResolver\", local_ctx\n    )\n    ctx = resolver.resolve(\n        \"uno:socket,host=localhost,port=8100;urp;StarOffice.ComponentContext\"\n    )\n    smgr = ctx.ServiceManager\n    doc = smgr.createInstanceWithContext(\"com.sun.star.presentation.PresentationDocument\", ctx)\n    slides = doc.getDrawPages()\n    slide = slides.getByIndex(0)\n    doc.storeToURL(\"file:\u002F\u002F\u002Fpath\u002Fto\u002Fpresentation.odp\", ())\n    doc.close(True)\n```\n\n### Converting Presentations\n\n```bash\n# ODP to PPTX\nsoffice --headless --convert-to pptx presentation.odp\n\n# ODP to PDF\nsoffice --headless --convert-to pdf presentation.odp\n\n# PPTX to ODP\nsoffice --headless --convert-to odp presentation.pptx\n\n# Batch convert\nfor file in *.odp; do\n    soffice --headless --convert-to pdf \"$file\"\ndone\n```\n\n### Template-Based Generation\n```python\nimport subprocess\nimport tempfile\nfrom pathlib import Path\n\ndef generate_from_template(template_path, content, output_path):\n    with tempfile.TemporaryDirectory() as tmpdir:\n        subprocess.run(['unzip', '-q', template_path, '-d', tmpdir])\n        content_file = Path(tmpdir) \u002F 'content.xml'\n        content_xml = content_file.read_text()\n        for key, value in content.items():\n            content_xml = content_xml.replace(f'${{{key}}}', str(value))\n        content_file.write_text(content_xml)\n        subprocess.run(['zip', '-rq', output_path, '.'], cwd=tmpdir)\n    return output_path\n```\n\n## Format Conversion Reference\n\n### Supported Input Formats\n- ODP (native), PPTX, PPT, PDF\n\n### Supported Output Formats\n- ODP, PPTX, PDF, HTML, SWF\n\n## Command-Line Reference\n\n```bash\nsoffice --headless\nsoffice --headless --convert-to \u003Cformat> \u003Cfile>\nsoffice --impress  # Impress\n```\n\n## Python Libraries\n\n```bash\npip install ezodf     # ODF handling\npip install odfpy     # ODF manipulation\n```\n\n## Best Practices\n\n1. Use slide masters for consistency\n2. Create templates for recurring presentations\n3. Embed fonts for PDF distribution\n4. Use vector graphics when possible\n5. Store ODP source files in version control\n6. Test conversions thoroughly\n7. Keep file sizes manageable\n\n## Troubleshooting\n\n### Cannot open socket\n```bash\nkillall soffice.bin\nsoffice --headless --accept=\"socket,host=localhost,port=8100;urp;\"\n```\n\n## Resources\n\n- [LibreOffice Impress Guide](https:\u002F\u002Fdocumentation.libreoffice.org\u002F)\n- [UNO API Reference](https:\u002F\u002Fapi.libreoffice.org\u002F)\n\n## Related Skills\n\n- writer\n- calc\n- draw\n- base\n- pptx-official\n- workflow-automation\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,155,1349,"2026-05-16 13:26:10",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"设计创意","design","mdi-palette-outline","UI 设计、生成艺术、品牌视觉等创意 Skill",3,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"视觉创意","graphic","mdi-brush","海报、Logo、插画等视觉创作",2,48,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"9ca886fb-ecfb-449b-b4bd-d8d0c974a3ef","1.0.0","impress.zip",2042,"uploads\u002Fskills\u002F051b81c0-9431-460b-bd3c-501d11e83faa\u002Fimpress.zip","3ad0c08febf77e44db8c035b90d537379f7a28922b735249da71fc1e2546f7c1","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":4549}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]