This commit is contained in:
ION606
2025-10-17 09:26:49 -04:00
parent 9abd1a6df6
commit dc2ceac7de
7 changed files with 296 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
from pptx import Presentation
# load the uploaded file
input_path = "./tech_project_proposal_ideas_dark_theme.pptx"
output_path = "./new_pptx.pptx"
def to_title_case(text: str) -> str:
if not text:
return text
# title case for slide titles (major words capitalized)
return text.title()
def to_sentence_case(text: str) -> str:
if not text:
return text
text = text.strip()
if not text:
return text
# sentence case for bullet points
return text[0].upper() + text[1:]
# open ppt
prs = Presentation(input_path)
for slide in prs.slides:
for shape in slide.shapes:
if not shape.has_text_frame:
continue
tf = shape.text_frame
# heuristics: assume first shape (or largest font) in slide is the title
if slide.shapes.index(shape) == 0 or "title" in shape.name.lower():
for para in tf.paragraphs:
para.text = to_title_case(para.text)
else:
for para in tf.paragraphs:
para.text = to_sentence_case(para.text)
# save output
prs.save(output_path)
output_path