Add page numbers to footer: 'X of Y' (bottom left)
Mirror and run GitLab CI / build (push) Has been cancelled
Ruff / ruff (push) Has been cancelled

- Use PAGE and NUMPAGES fields for dynamic page numbering.
- Footer aligned left.
This commit is contained in:
admin
2026-06-17 02:10:42 +00:00
parent bd4393addc
commit 49e607e1e1
+33
View File
@@ -551,6 +551,39 @@ def create_transcript_docx(text: str, filename: str):
line_number += 1 line_number += 1
_add_transcript_paragraph(doc, cl, line_number=line_number) _add_transcript_paragraph(doc, cl, line_number=line_number)
# Add page numbers to footer: "X of Y" (bottom left)
section = doc.sections[0]
footer = section.footer
footer.is_linked_to_previous = False
footer_para = footer.paragraphs[0] if footer.paragraphs else footer.add_paragraph()
footer_para.alignment = WD_ALIGN_PARAGRAPH.LEFT
# Clear any existing content
for r in footer_para.runs:
r.text = ""
def add_field(run, code):
fldChar = OxmlElement("w:fldChar")
fldChar.set(qn("w:fldCharType"), "begin")
run._r.append(fldChar)
instrText = OxmlElement("w:instrText")
instrText.set(qn("xml:space"), "preserve")
instrText.text = code
run._r.append(instrText)
fldCharEnd = OxmlElement("w:fldChar")
fldCharEnd.set(qn("w:fldCharType"), "end")
run._r.append(fldCharEnd)
run_page = footer_para.add_run()
add_field(run_page, " PAGE ")
run_of = footer_para.add_run(" of ")
run_total = footer_para.add_run()
add_field(run_total, " NUMPAGES ")
# Save # Save
doc.save(filename) doc.save(filename)