Как сделать этот абзац жирным, используя docx в python - PullRequest
0 голосов
/ 18 марта 2020

Мне нужно сделать этот абзац жирным, но я не могу этого сделать, поэтому я использовал p.bold = True, но он не работал. Я также использовал add_run для каждой строки, но он показывает, что тип int и тип bool не имеют любой атрибут add_run.

    p = document.add_paragraph(F"""





{doj}

Employee Code: {record[57]}

{record[1]} {record[2]} {record[3]} {record[4]}
{record[12]},
{record[13]},{record[15]}

Dear {record[2]},""")

Я пытался сделать это так, но это не сработало

    document = Document()

    p = document.add_paragraph(F"""
{doj}""").bold = True
    p.add_run(F"""Employee Code: {record[57]}""").bold = True
    p.add_run(F"""{record[1]} {record[2]} {record[3]} {record[4]}""").bold = True
    p.add_run(F"""{record[12]},""").bold = True
    p.add_run(F"""{record[13]},{record[15]}""").bold = True

    p.add_run(F"""Dear {record[2]},""").bold = True

1 Ответ

0 голосов
/ 18 марта 2020

Надеюсь, что это решит вашу проблему Как применить жирный и курсив в python -docx?

Пояснение предоставляется на https://python-docx.readthedocs.io/en/latest/user/quickstart.html


Run objects have both a .bold and .italic property that allows you to set their value for a run:

paragraph = document.add_paragraph('Lorem ipsum ')
run = paragraph.add_run('dolor')
run.bold = True
paragraph.add_run(' sit amet.')

which produces text that looks like this: ‘Lorem ipsum dolor sit amet.’

Note that you can set bold or italic right on the result of .add_run() if you don’t need it for anything else:

paragraph.add_run('dolor').bold = True

# is equivalent to:

run = paragraph.add_run('dolor')
run.bold = True

# except you don't have a reference to `run` afterward

It’s not necessary to provide text to the .add_paragraph() method. This can make your code simpler if you’re building the paragraph up from runs anyway:

paragraph = document.add_paragraph()
paragraph.add_run('Lorem ipsum ')
paragraph.add_run('dolor').bold = True
paragraph.add_run(' sit amet.')

...