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