Files
AX-Copilot-Codex/dist/AxCopilot/skills/pptx-creator.skill.md

4.0 KiB

name, label, description, icon, requires, tabs
name label description icon requires tabs
pptx-creator PPT 프레젠테이션 생성 Python을 사용하여 전문적인 PowerPoint 프레젠테이션을 생성합니다. 작업 폴더의 양식 파일을 자동 활용합니다. \uE7BE python cowork

사용자의 요구에 맞는 PowerPoint 프레젠테이션을 Python으로 생성하세요.

사전 준비

필요한 패키지를 확인하고 설치하세요:

process_run: pip install python-pptx

양식 활용 (마스터 슬라이드 템플릿)

작업 폴더에 PPT 양식이 있으면 반드시 활용하세요:

  1. 양식 탐색: folder_map으로 작업 폴더를 스캔하여 .pptx 파일 확인
  2. 양식 후보 판별:
    • 파일명에 "양식", "template", "서식", "표준", "기본" 포함
    • 또는 사용자가 명시적으로 "XX 양식으로 작성해줘" 요청
    • 또는 사용자가 특정 .pptx 파일명을 언급
  3. 양식 구조 파악: document_read로 양식의 슬라이드 레이아웃 목록 확인
  4. 양식 기반 생성:
    prs = Presentation('양식_발표.pptx')
    # 마스터 슬라이드의 배경, 로고, 색 테마, 폰트가 자동 상속
    # 기존 슬라이드 제거 후 새 내용 추가
    while len(prs.slides) > 0:
        rId = prs.slides._sldIdLst[0].rId
        prs.part.drop_rel(rId)
        del prs.slides._sldIdLst[0]
    
  5. 레이아웃 확인 (양식마다 다를 수 있음):
    for i, layout in enumerate(prs.slide_layouts):
        print(f'{i}: {layout.name}')
    
  6. 양식이 없으면: 아래 기본 템플릿으로 새 프레젠테이션 생성

작업 절차

  1. 요구사항 파악: 발표 주제, 슬라이드 수, 스타일 확인
  2. 양식 확인: folder_map으로 작업 폴더에 양식 .pptx 파일이 있는지 확인
  3. 스크립트 작성: file_write로 Python 스크립트 생성
  4. 실행: process_run으로 스크립트 실행
  5. 결과 안내: 생성된 .pptx 파일 경로를 사용자에게 전달

스크립트 템플릿

from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
import os

# 양식 파일 자동 감지
template_keywords = ['양식', 'template', '서식', '표준', '기본']
template_file = None
for f in os.listdir('.'):
    if f.endswith('.pptx') and any(kw in f.lower() for kw in template_keywords):
        template_file = f
        break

# 양식이 있으면 활용, 없으면 새 프레젠테이션
if template_file:
    prs = Presentation(template_file)
    # 기존 슬라이드 제거 (마스터/레이아웃은 유지)
    while len(prs.slides) > 0:
        rId = prs.slides._sldIdLst[0].rId
        prs.part.drop_rel(rId)
        del prs.slides._sldIdLst[0]
    print(f'양식 활용: {template_file}')
    print(f'사용 가능한 레이아웃: {[l.name for l in prs.slide_layouts]}')
else:
    prs = Presentation()
    prs.slide_width = Inches(13.333)
    prs.slide_height = Inches(7.5)

# 제목 슬라이드
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = '프레젠테이션 제목'
if len(slide.placeholders) > 1:
    slide.placeholders[1].text = '부제목'

# 내용 슬라이드
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = '섹션 제목'
body = slide.placeholders[1]
body.text = '첫 번째 포인트'
p = body.text_frame.add_paragraph()
p.text = '두 번째 포인트'

prs.save('presentation.pptx')
print('프레젠테이션 생성 완료: presentation.pptx')

지원 기능

  • 제목/내용/빈 슬라이드 레이아웃
  • 텍스트 서식 (글꼴, 크기, 색상, 정렬)
  • 표 삽입
  • 이미지 삽입
  • 도형 (사각형, 원, 화살표)
  • 차트 (막대, 선, 원형)
  • 슬라이드 번호
  • 마스터 슬라이드 커스터마이징
  • 양식 파일 기반 마스터/레이아웃 상속 (배경, 로고, 색 테마, 폰트 자동 유지)

한국어로 안내하세요. 작업 폴더에 결과 파일을 저장하세요.