commit 685d2a1a9904be35fdd865fd2808993daa149633
parent ae5fab921df9ae298a5847e0bf693cd2194d2d11
Author: AsherMorgan <59518073+AsherMorgan@users.noreply.github.com>
Date: Fri, 17 Apr 2020 09:55:55 -0700
Implement vertical alignment setting.
Diffstat:
2 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/Songs2Slides.py b/Songs2Slides.py
@@ -4,7 +4,7 @@ import json
import os
from pptx import Presentation
from pptx.dml.color import RGBColor
-from pptx.enum.text import PP_ALIGN
+from pptx.enum.text import MSO_ANCHOR, PP_ALIGN
from pptx.util import Inches, Pt
import requests
import subprocess
@@ -77,23 +77,35 @@ def CreatePptx(parsedLyrics, filepath, openFirst, settings):
prs.slide_width = Inches(settings["slide-width"])
prs.slide_height = Inches(settings["slide-height"])
+ # Get margins
+ left = Inches(settings["margin-left"])
+ top = Inches(settings["margin-top"])
+ width = Inches(settings["slide-width"] - settings["margin-left"] - settings["margin-right"])
+ height = Inches(settings["slide-height"] - settings["margin-top"] - settings["margin-bottom"])
+
for lyric in parsedLyrics:
# Add slide
slide = prs.slides.add_slide(blank_slide_layout)
-
+
# Add text box
- left = Inches(settings["margin-left"])
- top = Inches(settings["margin-top"])
- width = Inches(settings["slide-width"] - settings["margin-left"] - settings["margin-right"])
- height = Inches(settings["slide-height"] - settings["margin-top"] - settings["margin-bottom"])
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
tf.clear()
+
+ # Apply text formating
tf.word_wrap = settings["word-wrap"]
+ if (settings["vertical-alignment"].lower() == "top"):
+ tf.vertical_anchor = MSO_ANCHOR.TOP
+ elif (settings["vertical-alignment"].lower() == "bottom"):
+ tf.vertical_anchor = MSO_ANCHOR.BOTTOM
+ else:
+ tf.vertical_anchor = MSO_ANCHOR.MIDDLE
# Add pharagraph
p = tf.paragraphs[0]
p.text = lyric
+
+ # Apply pharagraph formating
p.font.name = settings["font-family"]
p.font.size = Pt(settings["font-size"])
p.font.bold = settings["font-bold"]
diff --git a/settings.json b/settings.json
@@ -16,6 +16,7 @@
"font-italic": false,
"font-color": [0, 0, 0],
+ "vertical-alignment": "middle",
"line-spacing": 1.25,
"word-wrap": true
}
\ No newline at end of file