如何在 python-docx 中同时应用粗体和居中?

How do I apply both bold and center in python-docx?

我正在使用 python-docx 将文本输入 MS Word。我可以将它设为粗体或居中,但如何同时进行。
这是粗体:

p=document.add_paragraph().add_run('test word')
p.font.size = Pt(16)
p.bold = True

这里是中心:

p=document.add_paragraph('test word')
p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER

如何做到既加粗又居中?

paragraphrun之间分开并分别定义:

p=document.add_paragraph()
p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
r=p.add_run('test word')
r.font.size = Pt(16)
r.bold = True

您可以将p设置为本段的参考,然后使用add_run()添加您的文字。就像这样:

p = document.add_paragraph()
p.add_run('test word').bold = True
p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER

抱歉,我的图片上传不了,但是我试过了。

我在一个项目中创建了一个助手-class,我称之为 Text。我们还添加了一个将文本添加到文档的功能。

现在我们可以这样做了:

add_Text([Text("NORMAL TEXT "),Text("BOLD TEXT",bold=True)] 

该函数将确保运行在同一段落中。由于中心段落是段落的 属性 我在外面添加了它:

add_Text([Text("NORMAL TEXT "),Text("BOLD TEXT",bold=True), align='center'] 

这是我的意思的完整示例:

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

class Text:
    def __init__(self, text, bold=False, italic=False):
        self.text = text
        self.bold = bold
        self.italic = italic

def add_text(textitems, align=False):
    p = document.add_paragraph('')
    if align == 'center':
        p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
    for t in textitems:
        r = p.add_run(t.text)
        if t.bold:
            r.bold = True
        if t.italic:
            r.italic = True

document = Document()
document.add_heading('Document Title', 0)

add_text([
    Text('Text ', bold=True, italic=True),
    Text('Text2', bold=False, italic=True)
    ], align='center')

add_text([
    Text('Text ', bold=True, italic=True),
    Text('Text2', bold=False, italic=True)
    ])

document.save('demo.docx')