kintex/docs/deliverables/제안서/_gen/render_check.py
zio ba90b54d81 feat(proposal): G2B-standard 7-chapter proposal deck (97 slides, QA-approved)
- Restructure to KONEPS (조달청 협상계약 별지5호) standard TOC: I general / II strategy-methodology / III tech-function / IV performance-quality / V PM / VI support / VII misc
- 9 new slides: staffing M/M, quantitative eval, standard framework, PM methodology, handover/training, SM/SLA, incident/BCP, managerial security, subcontracting
- Scoring alignment updated to tech 90 (70 qual + 20 quant) / price 10
- Nanobanana win-theme dual placement (II applied-tech + III function)
- Appendix D screen gallery (19 Stitch drafts) with AI-draft disclosure
- QA PASS: RTM 142/142 (3 fixes: F-008/F-010/F-026), no secrets, honesty labels verified
- Preserve rebuild toolchain + source docs in deliverables/제안서/_gen (16 files)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 00:44:44 +09:00

24 lines
926 B
Python

# -*- coding: utf-8 -*-
"""PowerPoint COM 렌더링 검증 — 전 슬라이드 PNG export."""
import sys, os, glob
import win32com.client as win32
PPTX = sys.argv[1] if len(sys.argv) > 1 else r"C:\GUARDiA\workspace\kintex\docs\deliverables\제안서.pptx"
OUT = sys.argv[2] if len(sys.argv) > 2 else r"C:\Users\ython\AppData\Local\Temp\claude\C--GUARDiA-workspace-kintex\85f77606-5d61-424b-8a38-f8b61b56b54c\scratchpad\render"
os.makedirs(OUT, exist_ok=True)
for f in glob.glob(os.path.join(OUT, "*.png")):
try: os.remove(f)
except: pass
app = win32.Dispatch("PowerPoint.Application")
try:
app.Visible = True
except Exception:
pass
pres = app.Presentations.Open(PPTX, ReadOnly=True, Untitled=False, WithWindow=False)
n = pres.Slides.Count
for i in range(1, n+1):
pres.Slides(i).Export(os.path.join(OUT, f"s{i:03d}.png"), "PNG", 1280, 720)
pres.Close(); app.Quit()
print("RENDERED", n, "slides ->", OUT)