Update python-pptx/python-pptx.py
Browse files- python-pptx/python-pptx.py +53 -0
python-pptx/python-pptx.py
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#https://huggingface.co/spaces/MisterAI/GenDoc_05
|
| 2 |
+
#/home/user/python-pptx/python-pptx.py_01
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
from pptx import Presentation
|
| 6 |
+
from pptx.util import Inches, Pt
|
| 7 |
+
|
| 8 |
+
class PresentationGenerator:
|
| 9 |
+
def __init__(self):
|
| 10 |
+
pass
|
| 11 |
+
|
| 12 |
+
def parse_presentation_content(self, content):
|
| 13 |
+
slides = []
|
| 14 |
+
current_slide = None
|
| 15 |
+
|
| 16 |
+
for line in content.split('\n'):
|
| 17 |
+
line = line.strip()
|
| 18 |
+
if line.startswith('TITRE:'):
|
| 19 |
+
slides.append({'type': 'title', 'title': line[6:].strip()})
|
| 20 |
+
elif line.startswith('DIAPO'):
|
| 21 |
+
if current_slide:
|
| 22 |
+
slides.append(current_slide)
|
| 23 |
+
current_slide = {'type': 'content', 'title': '', 'points': []}
|
| 24 |
+
elif line.startswith('Titre:') and current_slide:
|
| 25 |
+
current_slide['title'] = line[6:].strip()
|
| 26 |
+
elif line.startswith('- ') and current_slide:
|
| 27 |
+
current_slide['points'].append(line[2:].strip())
|
| 28 |
+
|
| 29 |
+
if current_slide:
|
| 30 |
+
slides.append(current_slide)
|
| 31 |
+
|
| 32 |
+
return slides
|
| 33 |
+
|
| 34 |
+
def create_presentation(self, slides):
|
| 35 |
+
prs = Presentation()
|
| 36 |
+
|
| 37 |
+
title_slide = prs.slides.add_slide(prs.slide_layouts[0])
|
| 38 |
+
title_slide.shapes.title.text = slides[0]['title']
|
| 39 |
+
|
| 40 |
+
for slide in slides[1:]:
|
| 41 |
+
content_slide = prs.slides.add_slide(prs.slide_layouts[1])
|
| 42 |
+
content_slide.shapes.title.text = slide['title']
|
| 43 |
+
|
| 44 |
+
if slide['points']:
|
| 45 |
+
body = content_slide.shapes.placeholders[1].text_frame
|
| 46 |
+
body.clear()
|
| 47 |
+
for point in slide['points']:
|
| 48 |
+
p = body.add_paragraph()
|
| 49 |
+
p.text = point
|
| 50 |
+
p.level = 0
|
| 51 |
+
|
| 52 |
+
return prs
|
| 53 |
+
|