HTML 강의자료를 고화질 PPT로 자동 변환하기

소개

강의자료를 PowerPoint 대신 HTML로 제작했습니다. 브라우저에서 F11 풀스크린으로 바로 강의할 수 있고, 인터랙티브 요소(자가진단, 레이더 차트, 입력 캔버스)를 넣을 수 있어서 선택한 방식이었습니다.

그런데 강의 후 자료를 공유할 때 문제가 생겼습니다. HTML 폴더 전체를 압축해서 보내면 받는 쪽에서 열기가 번거롭고, 많은 분들이 "PPT 파일로 받고 싶다"고 하셨거든요.

그래서 "HTML 슬라이드를 그대로 스크린샷 찍어서 PPT로 만들 수 없을까?" 를 시도했습니다. Claude에게 방법을 물어보고, 실제 코드 작성부터 실행까지 함께 진행했습니다.

- 슬라이드 수: 37장

- 슬라이드 크기: 1280×720px (16:9)

- 목표 출력: 강의 발표자료.pptx

진행 방법

사용 도구

- Claude (Claude Code) — 전체 코드 설계 및 실행

- Python 3.11

- [Playwright](https://playwright.dev/python/) — headless 브라우저로 HTML 슬라이드 스크린샷

- [python-pptx](https://python-pptx.readthedocs.io/) — 스크린샷 이미지를 PPT 슬라이드로 조립

- uv — Python 패키지 관리

Claude Code 채팅창에 아래처럼 요청했습니다.

이미지로 추출해서 ppt로 만들고 싶어. 현재 버전으로 만들어줘. 파일명은 "강의 발표자료.pptx"

별도의 복잡한 프롬프트 없이 한 줄로 요청했고, Claude가 환경 탐색(Python 경로 확인, 패키지 설치 방법)부터 코드 작성, 실행까지 알아서 처리했습니다.

결과와 배운 점

결과물

- 37장짜리 .pptx 파일 생성 완료 (약 5.1MB)

- 각 슬라이드가 2560×1440 해상도 PNG로 캡처되어 PPT에 삽입됨

- 폰트(Pretendard CDN), 레이아웃, 색상이 HTML 화면 그대로 재현됨

꿀팁

- device_scale_factor=2 설정이 핵심입니다. 기본값(1)으로 하면 1280×720으로 캡처되어 PPT에서 흐릿하게 보입니다. 2배로 설정하면 2560×1440으로 캡처되어 선명합니다.

### 시행착오

Python 환경 문제가 제일 오래 걸렸습니다.

저는 uv로 Python을 관리하고 있었는데, pip install을 직접 실행하면 "externally-managed-environment" 오류가 났습니다. Claude가 여러 방법을 시도하다가 결국 uv venv로 독립 가상환경을 만들고 uv pip install --python <venv경로>로 설치하는 방식으로 해결했습니다.

playwright install chromium 명령어도 가상환경 안의 Python으로 실행해야 브라우저가 제대로 연결됩니다.

경로에 한글이 있어도 문제없었습니다.

파일경로에 한글·특수문자가 있어도, pathlib.Path.as_uri()를 쓰면 URL 인코딩을 자동으로 처리해줘서 Playwright가 정상 접근했습니다.

### 앞으로의 계획

이미지로 캡쳐하는 것 말고 ppt로 수정가능하게 추출하는 방법을 고민해보려고 합니다.

도움 받은 글 (옵션)

지피터스 오프라인에서 스터디장님들께 여쭤봤던 내용으로 진행했습니다.

이런 작업이 많아질텐데 좀 더 고도화가 필요할 것 같습니다.

2
2개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.