from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pptx.enum.shapes import MSO_SHAPE
# PPT 생성
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
content_slide_layout = prs.slide_layouts[1]
# 이미지 경로 (업로드한 이미지로 변경)
images = [
"스크린샷_2025-11-03_094904.png", # 전통형
"스크린샷_2025-11-03_094942.png", # 현대형
"스크린샷_2025-11-03_094828.png" # 퓨전형
]
# 1. 표지
slide = prs.slides.add_slide(title_slide_layout)
slide.shapes.title.text = "공주시 WELCOME SITE 조성계획"
slide.placeholders[1].text = ("공공조형물 디자인 컨셉 제안서\n"
"작성일: 2025년 11월 4일\n"
"기관: 한국도로공사")
slide.shapes.title.text_frame.paragraphs[0].font.size = Pt(44)
slide.placeholders[1].text_frame.paragraphs[0].font.size = Pt(20)
# 2. 목차
slide = prs.slides.add_slide(content_slide_layout)
slide.shapes.title.text = "목차"
slide.placeholders[1].text = ("1. 제안 개요\n"
"2. 전통형 디자인\n"
"3. 현대형 디자인\n"
"4. 퓨전형 디자인\n"
"5. 비교 요약\n"
"6. 제안 방향 및 종합 메시지\n"
"7. 마무리")
# 제안 개요
slide = prs.slides.add_slide(content_slide_layout)
slide.shapes.title.text = "제안 개요"
slide.placeholders[1].text = ("- 목적: 공주시 방문객 맞이 공간 조성\n"
"- 기획 배경: 지역 정체성 강화 및 관광 활성화\n"
"- 디자인 방향: 전통, 현대, 융합형 3가지 콘셉트")
# 디자인 슬라이드 생성 함수
def add_design_slide(title, image_path, keywords, description, bg_color=None):
slide = prs.slides.add_slide(content_slide_layout)
slide.shapes.title.text = title
# 배경색
if bg_color:
fill = slide.background.fill
fill.solid()
fill.fore_color.rgb = RGBColor(*bg_color)
# 본문 내용
tf = slide.placeholders[1].text_frame
tf.clear()
p1 = tf.add_paragraph()
p1.text = keywords
p1.font.bold = True
p1.font.size = Pt(18)
p2 = tf.add_paragraph()
p2.text = description
p2.font.size = Pt(16)
# 이미지 삽입 (오른쪽)
slide.shapes.add_picture(image_path, Inches(4), Inches(1.5), width=Inches(5), height=Inches(3))
return slide
# 전통형 (청색 배경)
for i in range(4):
add_design_slide(f"전통형 디자인 ({i+1})", images[0],
"- 키워드: 품격, 역사성, 한국적 정체성",
"- 전통적 상징성과 현대 조형미 조화",
bg_color=(0, 51, 102))
# 현대형 (연한 블루/회색 배경)
for i in range(4):
add_design_slide(f"현대형 디자인 ({i+1})", images[1],
"- 키워드: 빛, 곡선, 역동성, 미래지향",
"- 도시 혁신과 개방성을 시각화",
bg_color=(230, 245, 255))
# 퓨전형 (네이비 배경)
for i in range(4):
add_design_slide(f"퓨전형 디자인 ({i+1})", images[2],
"- 키워드: 조화, 융합, 시간의 연결",
"- 전통문양+현대적 감각 혼합",
bg_color=(25, 25, 112))
# 비교 요약
slide = prs.slides.add_slide(content_slide_layout)
slide.shapes.title.text = "3가지 콘셉트 비교 요약"
slide.placeholders[1].text = ("전통형: 역사성 강조\n"
"현대형: 미래지향, 역동적\n"
"퓨전형: 전통과 현대의 조화")
# 제안 방향
slide = prs.slides.add_slide(content_slide_layout)
slide.shapes.title.text = "제안 방향"
slide.placeholders[1].text = "전통을 담고, 미래를 잇다."
# 종합 메시지
slide = prs.slides.add_slide(content_slide_layout)
slide.shapes.title.text = "종합 메시지"
slide.placeholders[1].text = "도시의 기억과 미래를 연결하는 디자인 언어"
# 마무리
slide = prs.slides.add_slide(content_slide_layout)
slide.shapes.title.text = "마무리"
slide.placeholders[1].text = "감사합니다.\n한국도로공사 / 공주시 WELCOME SITE 조성계획"
# 저장
prs.save("공주시_WELCOME_SITE_보고용_최적화_2025.pptx")
print("공공기관 보고용 PPT 생성 완료!")
To embed this project on your website, copy the following code and paste it into your website's HTML: