Community코딩 & 개발github.com

PPTX (PowerPoint 생성, 편집, 분석)

프레젠테이션 생성, 편집 및 분석을 위한 스킬입니다. Claude가 .pptx 파일 작업(새 프레젠테이션 생성, 콘텐츠 수정, 레이아웃 작업, 주석/발표자 노트 추가 등)이 필요할 때 사용됩니다.

PPTX (PowerPoint 생성, 편집, 분석)란 무엇인가요?

이 스킬은 Claude가 PowerPoint(.pptx) 파일을 완벽하게 생성, 편집, 분석할 수 있도록 지원합니다. .pptx 파일은 ZIP 압축 형식으로, 내부에는 XML 파일과 리소스가 포함되어 있어 스킬은 이 구조를 활용합니다. 스킬은 크게 세 가지 주요 워크플로우를 제공합니다. 첫째, 콘텐츠 분석을 위해 markitdown을 사용한 텍스트 추출과 OOXML 구조를 직접 파싱하여 주석, 발표자 노트, 디자인 요소 등을 상세히 분석합니다. 둘째, 새로운 프레젠테이션 생성에는 html2pptx 워크플로우를 사용하여 HTML 슬라이드를 정확한 위치의 PowerPoint 슬라이드로 변환하며, 디자인 원칙, 색상 팔레트 선택, 시각적 세부 옵션 등이 포함되어 있습니다. 셋째, 기존 템플릿을 기반으로 프레젠테이션을 만들거나 기존 파일을 편집할 때는 OOXML을 직접 조작하여 언패킹, XML 편집, 유효성 검사 및 재패킹 과정을 수행합니다. 이 스킬은 Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용 가능하며, 복잡한 프레젠테이션 작업을 자동화하고 시각적 검증까지 지원합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ComposioHQ/awesome-claude-skills/tree/master/document-skills/pptx

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

PPTX 생성, 편집 및 분석

개요

사용자가 .pptx 파일을 생성, 편집 또는 분석하도록 요청할 수 있습니다. .pptx 파일은 기본적으로 ZIP 아카이브로, XML 파일 및 기타 리소스가 포함되어 있으며 이를 읽거나 편집할 수 있습니다. 다양한 작업에 대해 서로 다른 도구와 워크플로우가 제공됩니다.

콘텐츠 읽기 및 분석

텍스트 추출

프레젠테이션의 텍스트 내용만 읽으면 되는 경우, 문서를 마크다운으로 변환해야 합니다:

# 문서를 마크다운으로 변환
python -m markitdown path-to-file.pptx

원시 XML 접근

주석, 발표자 노트, 슬라이드 레이아웃, 애니메이션, 디자인 요소 및 복잡한 서식 지정을 위해서는 원시 XML 접근이 필요합니다. 이러한 기능을 사용하려면 프레젠테이션을 압축 풀고 원시 XML 내용을 읽어야 합니다.

파일 압축 풀기

python ooxml/scripts/unpack.py <office_file> <output_dir>

참고: unpack.py 스크립트는 프로젝트 루트를 기준으로 skills/pptx/ooxml/scripts/unpack.py에 있습니다. 이 경로에 스크립트가 없으면 find . -name "unpack.py"를 사용하여 찾으십시오.

주요 파일 구조

  • ppt/presentation.xml - 주요 프레젠테이션 메타데이터 및 슬라이드 참조
  • ppt/slides/slide{N}.xml - 개별 슬라이드 내용 (slide1.xml, slide2.xml 등)
  • ppt/notesSlides/notesSlide{N}.xml - 각 슬라이드의 발표자 노트
  • ppt/comments/modernComment_*.xml - 특정 슬라이드에 대한 주석
  • ppt/slideLayouts/ - 슬라이드용 레이아웃 템플릿
  • ppt/slideMasters/ - 마스터 슬라이드 템플릿
  • ppt/theme/ - 테마 및 스타일 정보
  • ppt/media/ - 이미지 및 기타 미디어 파일

타이포그래피 및 색상 추출

따라야 할 예제 디자인이 주어졌을 때: 아래 방법을 사용하여 먼저 프레젠테이션의 타이포그래피와 색상을 분석하십시오:

  1. 테마 파일 읽기: ppt/theme/theme1.xml에서 색상 (<a:clrScheme>) 및 글꼴 (<a:fontScheme>) 확인
  2. 슬라이드 샘플 콘텐츠: ppt/slides/slide1.xml에서 실제 글꼴 사용 (<a:rPr>) 및 색상 확인
  3. 패턴 검색: grep을 사용하여 모든 XML 파일에서 색상 (<a:solidFill>, <a:srgbClr>) 및 글꼴 참조 검색

템플릿 없이 새 PowerPoint 프레젠테이션 만들기

처음부터 새 PowerPoint 프레젠테이션을 만들 때는 html2pptx 워크플로우를 사용하여 HTML 슬라이드를 정확한 위치로 PowerPoint로 변환합니다.

디자인 원칙

중요: 프레젠테이션을 만들기 전에 콘텐츠를 분석하고 적절한 디자인 요소를 선택하십시오:

  1. 주제 고려: 이 프레젠테이션은 무엇에 관한 것인가? 어떤 어조, 산업 또는 분위기를 암시하는가?
  2. 브랜딩 확인: 사용자가 회사/조직을 언급하는 경우 해당 브랜드 색상과 아이덴티티를 고려
  3. 콘텐츠에 맞는 팔레트 선택: 주제를 반영하는 색상 선택
  4. 접근 방식 설명: 코드를 작성하기 전에 디자인 선택 사항을 설명

요구 사항:

  • ✅ 코드를 작성하기 전에 콘텐츠에 기반한 디자인 접근 방식을 설명
  • ✅ 웹 안전 글꼴만 사용: Arial, Helvetica, Times New Roman, Georgia, Courier New, Verdana, Tahoma, Trebuchet MS, Impact
  • ✅ 크기, 굵기 및 색상을 통해 명확한 시각적 계층 구조 생성
  • ✅ 가독성 보장: 강한 대비, 적절한 크기의 텍스트, 깔끔한 정렬
  • ✅ 일관성 유지: 슬라이드 전반에 걸쳐 패턴, 간격 및 시각적 언어 반복

색상 팔레트 선택

창의적으로 색상 선택하기:

  • 기본값 이상으로 생각하기: 이 특정 주제에 진정으로 어울리는 색상은 무엇인가? 자동 조종 장치 선택을 피하십시오.
  • 다각도 고려: 주제, 산업, 분위기, 에너지 수준, 대상 청중, 브랜드 아이덴티티(언급된 경우)
  • 모험적으로 시도: 예상치 못한 조합을 시도 - 의료 프레젠테이션이 반드시 녹색일 필요는 없으며, 금융이 네이비 블루일 필요는 없음
  • 팔레트 구축: 함께 잘 어울리는 3-5가지 색상 선택 (주요 색상 + 보조 톤 + 강조 색상)
  • 대비 보장: 텍스트가 배경에서 명확하게 읽혀야 함

예제 색상 팔레트 (창의성을 자극하는 데 사용 - 하나를 선택하거나, 적용하거나, 직접 만드십시오):

  1. 클래식 블루: 딥 네이비 (#1C2833), 슬레이트 그레이 (#2E4053), 실버 (#AAB7B8), 오프 화이트 (#F4F6F6)
  2. 틸 & 코랄: 틸 (#5EA8A7), 딥 틸 (#277884), 코랄 (#FE4447), 화이트 (#FFFFFF)
  3. 볼드 레드: 레드 (#C0392B), 브라이트 레드 (#E74C3C), 오렌지 (#F39C12), 옐로우 (#F1C40F), 그린 (#2ECC71)
  4. 웜 블러시: 모브 (#A49393), 블러시 (#EED6D3), 로즈 (#E8B4B8), 크림 (#FAF7F2)
  5. 버건디 럭셔리: 버건디 (#5D1D2E), 크림슨 (#951233), 러스트 (#C15937), 골드 (#997929)
  6. 딥 퍼플 & 에메랄드: 퍼플 (#B165FB), 다크 블루 (#181B24), 에메랄드 (#40695B), 화이트 (#FFFFFF)
  7. 크림 & 포레스트 그린: 크림 (#FFE1C7), 포레스트 그린 (#40695B), 화이트 (#FCFCFC)
  8. 핑크 & 퍼플: 핑크 (#F8275B), 코랄 (#FF574A), 로즈 (#FF737D), 퍼플 (#3D2F68)
  9. 라임 & 플럼: 라임 (#C5DE82), 플럼 (#7C3A5F), 코랄 (#FD8C6E), 블루 그레이 (#98ACB5)
  10. 블랙 & 골드: 골드 (#BF9A4A), 블랙 (#000000), 크림 (#F4F6F6)
  11. 세이지 & 테라코타: 세이지 (#87A96B), 테라코타 (#E07A5F), 크림 (#F4F1DE), 차콜 (#2C2C2C)
  12. 차콜 & 레드: 차콜 (#292929), 레드 (#E33737), 라이트 그레이 (#CCCBCB)
  13. 비비언트 오렌지: 오렌지 (#F96D00), 라이트 그레이 (#F2F2F2), 차콜 (#222831)
  14. 포레스트 그린: 블랙 (#191A19), 그린 (#4E9F3D), 다크 그린 (#1E5128), 화이트 (#FFFFFF)
  15. 레트로 레인보우: 퍼플 (#722880), 핑크 (#D72D51), 오렌지 (#EB5C18), 앰버 (#F08800), 골드 (#DEB600)
  16. 빈티지 어씨: 머스타드 (#E3B448), 세이지 (#CBD18F), 포레스트 그린 (#3A6B35), 크림 (#F4F1DE)
  17. 코스탈 로즈: 올드 로즈 (#AD7670), 비버 (#B49886), 에그쉘 (#F3ECDC), 애시 그레이 (#BFD5BE)
  18. 오렌지 & 터콰이즈: 라이트 오렌지 (#FC993E), 그레이시쉬 터콰이즈 (#667C6F), 화이트 (#FCFCFC)

시각적 세부 옵션

기하학적 패턴:

  • 가로가 아닌 대각선 구역 구분선
  • 비대칭 열 너비 (30/70, 40/60, 25/75)
  • 90° 또는 270°로 회전된 텍스트 헤더
  • 이미지용 원형/육각형 프레임
  • 모서리의 삼각형 악센트 모양
  • 깊이를 위한 겹치는 모양

테두리 및 프레임 처리:

  • 한쪽 면에만 두꺼운 단색 테두리 (10-20pt)
  • 대비되는 색상의 이중선 테두리
  • 전체 프레임 대신 모서리 브래킷
  • L자형 테두리 (위쪽+왼쪽 또는 아래쪽+오른쪽)
  • 헤더 아래 밑줄 악센트 (3-5pt 두께)

타이포그래피 처리:

  • 극단적인 크기 대비 (72pt 헤드라인 대 11pt 본문)
  • 넓은 문자 간격의 전체 대문자 헤더
  • 과장된 디스플레이 유형의 번호 매기기 섹션
  • 데이터/통계/기술 콘텐츠용 고정폭 글꼴 (Courier New)
  • 밀도 있는 정보를 위한 압축 글꼴 (Arial Narrow)
  • 강조를 위한 외곽선 텍스트

차트 및 데이터 스타일링:

  • 주요 데이터에 단일 악센트 색상이 있는 모노크롬 차트
  • 세로 대신 가로 막대 차트
  • 막대 차트 대신 점 그림
  • 최소한의 격자선 또는 전혀 없음
  • 범례 없이 요소에 직접 데이터 레이블
  • 주요 지표에 대한 과장된 숫자

레이아웃 혁신:

  • 텍스트 오버레이가 있는 전체 너비 이미지
  • 탐색/컨텍스트용 사이드바 열 (20-30% 너비)
  • 모듈식 그리드 시스템 (3×3, 4×4 블록)
  • Z-패턴 또는 F-패턴 콘텐츠 흐름
  • 색상이 지정된 모양 위의 떠 있는 텍스트 상자
  • 잡지 스타일 다중 열 레이아웃

배경 처리:

  • 슬라이드의 40-60%를 차지하는 단색 블록
  • 그라데이션 채우기 (세로 또는 대각선만)
  • 분할 배경 (두 가지 색상, 대각선 또는 세로)
  • 가장자리에서 가장자리까지의 색상 밴드
  • 디자인 요소로서의 네거티브 공간

레이아웃 팁

차트 또는 표가 있는 슬라이드를 만들 때:

  • 두 열 레이아웃 (권장): 전체 너비에 걸친 헤더를 사용하고 아래에 두 개의 열을 배치 - 한 열에는 텍스트/글머리 기호를, 다른 열에는 주요 콘텐츠를 배치합니다. 이렇게 하면 균형이 더 좋아지고 차트/표를 더 읽기 쉽게 만들 수 있습니다. 각 콘텐츠 유형에 맞게 공간을 최적화하기 위해 불균등한 열 너비(예: 40%/60% 분할)로 flexbox를 사용하십시오.
  • 전체 슬라이드 레이아웃: 최대 효과와 가독성을 위해 주요 콘텐츠(차트/표)가 슬라이드 전체를 차지하도록 합니다.
  • 절대 세로로 쌓지 마십시오: 차트/표를 텍스트 아래 단일 열에 배치하지 마십시오. 이렇게 하면 가독성이 떨어지고 레이아웃 문제가 발생합니다.

워크플로우

  1. 필수 - 전체 파일 읽기: html2pptx.md를 처음부터 끝까지 완전히 읽으십시오. 이 파일을 읽을 때 범위 제한을 설정하지 마십시오. 프레젠테이션 생성을 진행하기 전에 자세한 구문, 중요한 서식 규칙 및 모범 사례에 대한 전체 파일 내용을 읽으십시오.
  2. 각 슬라이드에 대해 적절한 치수(예: 16:9의 경우 720pt × 405pt)로 HTML 파일을 만드십시오.
    • 모든 텍스트 콘텐츠에 <p>, <h1>-<h6>, <ul>, <ol> 사용
    • 차트/표가 추가될 영역에 대해 class="placeholder" 사용 (가시성을 위해 회색 배경으로 렌더링)
    • 중요: 먼저 Sharp를 사용하여 그라데이션과 아이콘을 PNG 이미지로 래스터화한 다음 HTML에서 참조
    • 레이아웃: 차트/표/이미지가 있는 슬라이드의 경우 더 나은 가독성을 위해 전체 슬라이드 레이아웃 또는 두 열 레이아웃을 사용
  3. html2pptx.js 라이브러리를 사용하여 HTML 슬라이드를 PowerPoint로 변환하고 프레젠테이션을 저장하는 JavaScript 파일을 만들고 실행
    • 각 HTML 파일을 처리하는 데 html2pptx() 함수 사용
    • PptxGenJS API를 사용하여 플레이스홀더 영역에 차트 및 표 추가
    • pptx.writeFile()을 사용하여 프레젠테이션 저장
  4. 시각적 검증: 썸네일을 생성하고 레이아웃 문제를 검사
    • 썸네일 그리드 생성: python scripts/thumbnail.py output.pptx workspace/thumbnails --cols 4
    • 썸네일 이미지를 읽고 다음 사항을 주의 깊게 검사:
      • 텍스트 잘림: 헤더 막대, 도형 또는 슬라이드 가장자리로 인해 텍스트가 잘리는 경우
      • 텍스트 겹침: 텍스트가 다른 텍스트 또는 도형과 겹치는 경우
      • 위치 문제: 콘텐츠가 슬라이드 경계 또는 다른 요소에 너무 가까운 경우
      • 대비 문제: 텍스트와 배경 간의 대비 부족
    • 문제가 발견되면 HTML 여백/간격/색상을 조정하고 프레젠테이션을 다시 생성
    • 모든 슬라이드가 시각적으로 올바를 때까지 반복

기존 PowerPoint 프레젠테이션 편집

기존 PowerPoint 프레젠테이션의 슬라이드를 편집할 때는 원시 Office Open XML(OOXML) 형식으로 작업해야 합니다. 여기에는 .pptx 파일의 압축을 풀고 XML 콘텐츠를 편집한 다음 다시 압축하는 작업이 포함됩니다.

워크플로우

  1. 필수 - 전체 파일 읽기: ooxml.md(약 500줄)를 처음부터 끝까지 완전히 읽으십시오. 이 파일을 읽을 때 범위 제한을 설정하지 마십시오. 프레젠테이션 편집을 하기 전에 OOXML 구조 및 편집 워크플로우에 대한 자세한 지침을 위해 전체 파일 내용을 읽으십시오.
  2. 프레젠테이션 압축 풀기: python ooxml/scripts/unpack.py <office_file> <output_dir>
  3. XML 파일 편집 (주로 ppt/slides/slide{N}.xml 및 관련 파일)
  4. 중요: 각 편집 직후에 유효성을 검사하고 진행하기 전에 오류를 수정: python ooxml/scripts/validate.py <dir> --original <file>
  5. 최종 프레젠테이션 압축: python ooxml/scripts/pack.py <input_directory> <office_file>

템플릿을 사용하여 새 PowerPoint 프레젠테이션 만들기

기존 템플릿의 디자인을 따르는 프레젠테이션을 만들어야 하는 경우 템플릿 슬라이드를 복제하고 재배열한 다음 플레이스홀더 콘텐츠를 교체해야 합니다.

워크플로우

  1. 템플릿 텍스트 추출 및 시각적 썸네일 그리드 만들기:

    • 텍스트 추출: python -m markitdown template.pptx > template-content.md
    • template-content.md 읽기: 템플릿 프레젠테이션의 내용을 이해하기 위해 전체 파일을 읽으십시오. 이 파일을 읽을 때 범위 제한을 설정하지 마십시오.
    • 썸네일 그리드 만들기: python scripts/thumbnail.py template.pptx
    • 자세한 내용은 썸네일 그리드 만들기 섹션 참조
  2. 템플릿 분석 및 인벤토리 파일에 저장:

    • 시각적 분석: 썸네일 그리드를 검토하여 슬라이드 레이아웃, 디자인 패턴 및 시각적 구조 이해
    • 다음을 포함하는 template-inventory.md에 템플릿 인벤토리 파일을 만들고 저장:
      # 템플릿 인벤토리 분석
      **총 슬라이드: [개수]**
      **중요: 슬라이드는 0부터 시작합니다 (첫 번째 슬라이드 = 0, 마지막 슬라이드 = 개수-1)**
      
      ## [카테고리 이름]
      - 슬라이드 0: [레이아웃 코드(사용 가능한 경우)] - 설명/목적
      - 슬라이드 1: [레이아웃 코드] - 설명/목적
      - 슬라이드 2: [레이아웃 코드] - 설명/목적
      [... 모든 슬라이드는 인덱스와 함께 개별적으로 나열되어야 함 ...]
      
    • 썸네일 그리드 사용: 시각적 썸네일을 참조하여 다음을 식별:
      • 레이아웃 패턴 (제목 슬라이드, 콘텐츠 레이아웃, 섹션 구분선)
      • 이미지 플레이스홀더 위치 및 개수
      • 슬라이드 그룹 전반의 디자인 일관성
      • 시각적 계층 구조 및 구조
    • 이 인벤토리 파일은 다음 단계에서 적절한 템플릿을 선택하는 데 필요합니다.
  3. 템플릿 인벤토리를 기반으로 프레젠테이션 개요 만들기:

    • 2단계에서 사용 가능한 템플릿 검토
    • 첫 번째 슬라이드에 대한 소개 또는 제목 템플릿 선택. 이것은 첫 번째 템플릿 중 하나여야 합니다.
    • 다른 슬라이드에는 안전하고 텍스트 기반인 레이아웃을 선택합니다.
    • 중요: 레이아웃 구조를 실제 콘텐츠와 일치:
      • 단일 열 레이아웃: 통일된 내러티브 또는 단일 주제에 사용
      • 두 열 레이아웃: 정확히 2개의 고유한 항목/개념이 있는 때에만 사용
      • 세 열 레이아웃: 정확히 3개의 고유한 항목/개념이 있는 때에만 사용
      • 이미지 + 텍스트 레이아웃: 실제 삽입할 이미지가 있는 때에만 사용
      • 인용 레이아웃: 강조가 아닌, 사람의 실제 인용문(출처 포함)에만 사용
      • 콘텐츠보다 더 많은 플레이스홀더가 있는 레이아웃은 절대 사용하지 마십시오.
      • 항목이 2개인 경우 3열 레이아웃에 강제로 넣지 마십시오.
      • 항목이 4개 이상인 경우 여러 슬라이드로 나누거나 목록 형식을 사용하는 것을 고려하십시오.
    • 레이아웃을 선택하기 전에 실제 콘텐츠 조각을 계산
    • 선택한 레이아웃의 각 플레이스홀더가 의미 있는 콘텐츠로 채워질 것인지 확인

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

ably-automation

Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.

abstract-automation

Automate Abstract tasks via Rube MCP (Composio). Always search tools first for current schemas.

abuselpdb-automation

Automate Abuselpdb tasks via Rube MCP (Composio). Always search tools first for current schemas.

abyssale-automation

Automate Abyssale tasks via Rube MCP (Composio). Always search tools first for current schemas.

accelo-automation

Automate Accelo tasks via Rube MCP (Composio). Always search tools first for current schemas.

accredible-certificates-automation

Automate Accredible Certificates tasks via Rube MCP (Composio). Always search tools first for current schemas.

acculynx-automation

Automate Acculynx tasks via Rube MCP (Composio). Always search tools first for current schemas.

active-campaign-automation

Automate ActiveCampaign tasks via Rube MCP (Composio). Always search tools first for current schemas.

addresszen-automation

Automate Addresszen tasks via Rube MCP (Composio). Always search tools first for current schemas.

adobe-automation

Automate Adobe tasks via Rube MCP (Composio). Always search tools first for current schemas.

adrapid-automation

Automate Adrapid tasks via Rube MCP (Composio). Always search tools first for current schemas.

adyntel-automation

Automate Adyntel tasks via Rube MCP (Composio). Always search tools first for current schemas.

aeroleads-automation

Automate Aeroleads tasks via Rube MCP (Composio). Always search tools first for current schemas.

aero-workflow-automation

Automate Aero Workflow tasks via Rube MCP (Composio). Always search tools first for current schemas.

affinda-automation

Automate Affinda tasks via Rube MCP (Composio). Always search tools first for current schemas.

affinity-automation

Automate Affinity tasks via Rube MCP (Composio). Always search tools first for current schemas.

agencyzoom-automation

Automate Agencyzoom tasks via Rube MCP (Composio). Always search tools first for current schemas.

agent-mail-automation

Automate Agent Mail tasks via Rube MCP (Composio). Always search tools first for current schemas.

agentql-automation

Automate Agentql tasks via Rube MCP (Composio). Always search tools first for current schemas.

agenty-automation

Automate Agenty tasks via Rube MCP (Composio). Always search tools first for current schemas.

관련 스킬