使用 python docx 居中文本

centering text with python docx

我需要将 table 中嵌入的一小段文字居中。

传统上您会使用以下代码居中文本

from docx.enum.text import WD_ALIGN_PARAGRAPH

paragraph = document.add_paragraph("text here")
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER

但是因为我还需要更改字体和大小,所以我需要将该文本添加到 add_run() 函数中。这意味着上面的代码不再有效,它甚至没有给出任何错误。

我当前的密码是

from docx.enum.text import WD_ALIGN_PARAGRAPH
...
paragraph = row.cells[idx].add_paragraph().add_run("text here")
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER    #this line dose not work

另一件限制我获得所需结果的事情是 paragraph = document.add_paragraph() 实际上会在 table 中添加一行,这将摆脱 table 的维度意味着下面的代码不会令人满意:

paragraph = document.add_paragraph()
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
paragraph.add_run("text here")

我需要在一行中完成,以避免在 table.

中添加额外的一行

所以在夏季,我如何将嵌入在 add_run() 函数中的一行文本与 python docx?

放在同一行中

编辑以演示在表格中居中文本

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH

document = Document('demo.docx')

for table in document.tables:
    for row in table.rows:
        for cell in row.cells:
            for para in cell.paragraphs:
                para.alignment = WD_ALIGN_PARAGRAPH.CENTER
                para.add_run("text here")

document.save('demo.docx')