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

时间:2018-05-30 03:27:57

标签: python docx 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

如何做到大胆和中心?

3 个答案:

答案 0 :(得分:1)

ON DUPLICATE KEY UPDATEON DUPLICATE KEY INSERT之间分开并定义每个:

paragraph

答案 1 :(得分:0)

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

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

抱歉,我无法上传我的照片,但我已经尝试过了。

答案 2 :(得分:0)

我在一个项目中创建了一个帮助类,我称之为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')