一键导入
pptx
마케팅 프레젠테이션 제작을 위한 PowerPoint 생성/편집 도구
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
마케팅 프레젠테이션 제작을 위한 PowerPoint 생성/편집 도구
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
VM 설정, SSH 구성, OpenClaw 설치 및 GOG CLI 설정을 포함하여 Google Cloud Platform에 OpenClaw를 배포하는 포괄적인 가이드입니다.
ElevenLabs AI API를 통한 고품질 음성 생성, 사운드 이펙트, 음성 클론 가이드
키움증권 REST API를 사용하여 주식 데이터 조회, 계좌 자산 현황 파악, OAuth 인증, 환경 관리(모의투자/실전투자)를 수행할 때 사용. 주가 조회, 자산 조회, API 인증, 환경 전환이 필요한 경우 이 스킬을 활용.
This skill should be used when working with OpenDART (금융감독원 전자공시시스템) API for retrieving corporate disclosures, financial statements, dividend information, and major shareholder reports. Use this skill when the user needs to query Korean stock disclosures, check company earnings, retrieve financial data from DART, or analyze corporate filings.
This skill should be used when processing video, audio, or image files with FFmpeg. Use this skill for tasks like adding text/subtitles, extracting/mixing audio, converting formats, merging/trimming videos, applying transitions/fades, overlaying images/videos, and querying media metadata. Ideal for multimedia processing, video editing, format conversion, and media file manipulation.
Automated video editing with Whisper STT analysis and ElevenLabs TTS narration. This skill should be used when editing raw video recordings to remove silence gaps, retake/duplicate segments, and garbage audio, or when replacing narration with AI-generated TTS voice. Supports dynamic silence trimming based on Korean text analysis. Ideal for screen recordings, lecture captures, and narrated videos.
| name | pptx |
| description | 마케팅 프레젠테이션 제작을 위한 PowerPoint 생성/편집 도구 |
| version | 1.0.0 |
| author | Dante Labs |
| tags | ["presentation","powerpoint","marketing","design"] |
마케팅 캠페인, 브랜드 소개, 제안서 등 전문 프레젠테이션을 제작하기 위한 도구입니다.
| 기능 | 설명 | 용도 |
|---|---|---|
| 새 프레젠테이션 생성 | HTML → PPTX 변환 | 캠페인 제안서, 브랜드 소개 |
| 기존 파일 편집 | OOXML 직접 편집 | 텍스트 수정, 레이아웃 조정 |
| 템플릿 기반 생성 | 기업 템플릿 활용 | 일관된 브랜드 가이드 적용 |
| 썸네일 생성 | 슬라이드 미리보기 | 검증 및 승인 |
[콘텐츠 기획] → [HTML 작성] → [PPTX 변환] → [검증]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
/* 브랜드 컬러 정의 */
:root {
--primary: #1a365d;
--accent: #ed8936;
--text: #2d3748;
}
.slide { page-break-after: always; }
h1 { color: var(--primary); font-size: 36pt; }
h2 { color: var(--accent); font-size: 28pt; }
</style>
</head>
<body>
<div class="slide">
<h1>브랜드 소개</h1>
<p>우리 브랜드의 핵심 가치</p>
</div>
<div class="slide">
<h2>캠페인 전략</h2>
<ul>
<li>타겟 오디언스</li>
<li>채널 믹스</li>
<li>예상 KPI</li>
</ul>
</div>
</body>
</html>
# html2pptx 설치
pip install html2pptx
# 변환 실행
python -c "
from html2pptx import Html2Pptx
with open('presentation.html', 'r') as f:
html_content = f.read()
pptx = Html2Pptx(html_content)
pptx.save('presentation.pptx')
"
presentation.pptx (ZIP)
├── [Content_Types].xml
├── _rels/
├── docProps/
├── ppt/
│ ├── presentation.xml
│ ├── slides/
│ │ ├── slide1.xml
│ │ ├── slide2.xml
│ │ └── ...
│ ├── slideLayouts/
│ ├── slideMasters/
│ └── theme/
└── ...
import zipfile
import xml.etree.ElementTree as ET
from pathlib import Path
import shutil
def edit_slide_text(pptx_path, slide_num, old_text, new_text):
"""슬라이드 텍스트 교체"""
temp_dir = Path('temp_pptx')
# PPTX 압축 해제
with zipfile.ZipFile(pptx_path, 'r') as zip_ref:
zip_ref.extractall(temp_dir)
# 슬라이드 XML 수정
slide_path = temp_dir / f'ppt/slides/slide{slide_num}.xml'
tree = ET.parse(slide_path)
for elem in tree.iter():
if elem.text and old_text in elem.text:
elem.text = elem.text.replace(old_text, new_text)
tree.write(slide_path, xml_declaration=True, encoding='UTF-8')
# 새 PPTX 생성
output_path = pptx_path.replace('.pptx', '_edited.pptx')
with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
for file in temp_dir.rglob('*'):
if file.is_file():
zipf.write(file, file.relative_to(temp_dir))
shutil.rmtree(temp_dir)
return output_path
Primary: #1a365d (Navy)
Secondary: #2b6cb0 (Blue)
Accent: #ed8936 (Orange)
Text: #2d3748 (Dark Gray)
Background:#f7fafc (Light Gray)
Primary: #553c9a (Purple)
Secondary: #805ad5 (Violet)
Accent: #38b2ac (Teal)
Text: #1a202c (Black)
Background:#ffffff (White)
Primary: #744210 (Brown)
Secondary: #c05621 (Orange)
Accent: #2f855a (Green)
Text: #1a202c (Black)
Background:#fffaf0 (Warm White)
Primary: #1a202c (Black)
Secondary: #b7791f (Gold)
Accent: #c53030 (Red)
Text: #2d3748 (Dark Gray)
Background:#f7fafc (Off-White)
| 용도 | 추천 폰트 | 크기 |
|---|---|---|
| 제목 | Pretendard Bold, Noto Sans KR Bold | 36-48pt |
| 부제목 | Pretendard SemiBold | 24-32pt |
| 본문 | Pretendard Regular | 18-24pt |
| 캡션 | Pretendard Light | 14-16pt |
┌─────────────────────────────────────┐
│ │
│ [로고] │
│ │
│ ████████████████████ │
│ 메인 제목 │
│ ──────────────────── │
│ 부제목 │
│ │
│ 2024.01 │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ │
│ 01 │
│ ════════════ │
│ BRAND ANALYSIS │
│ 브랜드 분석 │
│ │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ 제목 │
├────────────────┬────────────────────┤
│ │ │
│ [이미지] │ • 포인트 1 │
│ │ • 포인트 2 │
│ │ • 포인트 3 │
│ │ │
└────────────────┴────────────────────┘
┌─────────────────────────────────────┐
│ 핵심 지표 │
├───────────┬───────────┬─────────────┤
│ │ │ │
│ 45% │ 128K │ +23% │
│ 전환율 │ 도달 │ 성장률 │
│ │ │ │
├───────────┴───────────┴─────────────┤
│ │
│ [차트/그래프] │
│ │
└─────────────────────────────────────┘
1. 표지
2. 목차
3. 현황 분석 (As-Is)
4. 목표 설정
5. 타겟 정의
6. 전략 개요
7. 채널 믹스
8. 콘텐츠 계획
9. 예산 및 일정
10. 기대 효과
11. Q&A
1. 표지
2. 브랜드 스토리
3. 미션 & 비전
4. 핵심 가치
5. 제품/서비스 라인업
6. 차별화 포인트
7. 고객 사례
8. 연락처
1. 표지
2. Executive Summary
3. 분석 배경
4. 데이터 개요
5. 주요 발견 (Insights)
6. 상세 분석
7. 시사점
8. 액션 플랜
from pptx import Presentation
from pdf2image import convert_from_path
import subprocess
def generate_thumbnails(pptx_path, output_dir):
"""슬라이드 썸네일 생성"""
# PPTX → PDF 변환 (LibreOffice)
subprocess.run([
'soffice', '--headless', '--convert-to', 'pdf',
'--outdir', output_dir, pptx_path
])
pdf_path = pptx_path.replace('.pptx', '.pdf')
# PDF → 이미지
images = convert_from_path(pdf_path, dpi=150)
for i, image in enumerate(images, 1):
image.save(f'{output_dir}/slide_{i:02d}.png', 'PNG')
프레젠테이션 파일은 프로젝트의 표준 디렉토리 구조에 저장합니다.
{project}/
├── reports/
│ └── presentations/ # 최종 프레젠테이션
│ ├── campaign-proposal-20240115.pptx
│ ├── brand-intro-20240115.pptx
│ └── analysis-report-20240115.pptx
├── assets/
│ └── pptx-resources/ # 프레젠테이션 리소스
│ ├── templates/ # 템플릿 파일
│ ├── images/ # 삽입용 이미지
│ └── thumbnails/ # 썸네일 미리보기
└── tmp/
└── pptx-drafts/ # 초안 및 작업 파일
{project}/reports/presentations/{type}-{subject}-{date}.pptx
예시:
reports/presentations/campaign-proposal-dante-coffee-20240115.pptx
reports/presentations/brand-intro-dante-coffee-20240115.pptx
reports/presentations/monthly-report-january-20240115.pptx
| 문서 | 경로 | 설명 |
|---|---|---|
| HTML → PPTX 가이드 | html2pptx.md | HTML을 PPTX로 변환하는 상세 가이드 |
| OOXML 편집 가이드 | ooxml.md | PowerPoint XML 직접 편집 가이드 |
| 스크립트 | 경로 | 설명 |
|---|---|---|
| html2pptx.js | scripts/html2pptx.js | HTML → PPTX 변환 (Playwright + PptxGenJS) |
| replace.py | scripts/replace.py | 텍스트 일괄 교체 |
| thumbnail.py | scripts/thumbnail.py | 슬라이드 썸네일 생성 |
| inventory.py | scripts/inventory.py | 슬라이드 인벤토리 |
| rearrange.py | scripts/rearrange.py | 슬라이드 재배열 |
| 스크립트 | 경로 | 설명 |
|---|---|---|
| unpack.py | ooxml/scripts/unpack.py | PPTX → XML 추출 |
| pack.py | ooxml/scripts/pack.py | XML → PPTX 패킹 |
| validate.py | ooxml/scripts/validate.py | XML 스키마 검증 |
이 스킬은 creative-director 및 copy-strategist 에이전트가 마케팅 프레젠테이션 제작 시 참조합니다.