diff --git a/scraibe/email_sender.py b/scraibe/email_sender.py index 43684b2..642451f 100644 --- a/scraibe/email_sender.py +++ b/scraibe/email_sender.py @@ -22,6 +22,7 @@ from docx import Document from docx.shared import Inches, Pt from docx.oxml.ns import qn from docx.oxml import OxmlElement +from docx.enum.text import WD_ALIGN_PARAGRAPH logger = logging.getLogger("scraibe.email_sender") @@ -304,6 +305,52 @@ def _setup_docx_style(doc): font.name = "Courier" font.size = Pt(12) + # Add "Page X of Y" footer, right-aligned + footer = section.footer + footer.is_linked_to_previous = False + p = footer.paragraphs[0] + p.alignment = WD_ALIGN_PARAGRAPH.RIGHT + run = p.add_run() + run.font.name = "Courier" + run.font.size = Pt(10) + + # Field: PAGE + fldChar1 = OxmlElement("w:fldChar") + fldChar1.set(qn("w:fldCharType"), "begin") + run._r.addprevious(fldChar1) + + instrText = OxmlElement("w:instrText") + instrText.set(qn("xml:space"), "preserve") + instrText.text = " PAGE " + run._r.addprevious(instrText) + + fldChar2 = OxmlElement("w:fldChar") + fldChar2.set(qn("w:fldCharType"), "end") + run._r.addprevious(fldChar2) + + # Static text: " of " + run_of = p.add_run(" of ") + run_of.font.name = "Courier" + run_of.font.size = Pt(10) + + # Field: NUMPAGES + run2 = p.add_run() + run2.font.name = "Courier" + run2.font.size = Pt(10) + + fldChar3 = OxmlElement("w:fldChar") + fldChar3.set(qn("w:fldCharType"), "begin") + run2._r.addprevious(fldChar3) + + instrText2 = OxmlElement("w:instrText") + instrText2.set(qn("xml:space"), "preserve") + instrText2.text = " NUMPAGES " + run2._r.addprevious(instrText2) + + fldChar4 = OxmlElement("w:fldChar") + fldChar4.set(qn("w:fldCharType"), "end") + run2._r.addprevious(fldChar4) + def _add_cover_page(doc, doc_type, date, description): p_type = doc.add_paragraph()