Как применить жирный и центр в Python-Docx? - PullRequest
0 голосов
/ 30 мая 2018

Я использую 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 голосов
/ 30 мая 2018

Вы можете установить p в качестве ссылки на этот параграф, а затем использовать add_run(), чтобы добавить свой текст.Вот так:

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

Извините, я не могу загрузить свою фотографию, но я попробовал ее.

0 голосов
/ 30 мая 2018

Я создал в проекте вспомогательный класс, который я называю 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')
0 голосов
/ 30 мая 2018

Разделяйте между paragraph и run и определяйте каждый:

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
...