songs2slides

A tool that automatically finds song lyrics and creates lyric slideshows
git clone https://git.ashermorgan.net/songs2slides/
Log | Files | Refs | README

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:
MSongs2Slides.py | 24++++++++++++++++++------
Msettings.json | 1+
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