【问题标题】:How do I apply both bold and center in python-docx?如何在 python-docx 中同时应用粗体和中心?
【发布时间】:2018-05-30 03:27:56
【问题描述】:

我正在使用 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

如何同时加粗和居中?

【问题讨论】:

  • 我写了一个更详细的答案,我认为可以帮助你。

标签: python docx python-docx


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-19
        • 1970-01-01
        • 2022-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-01
        • 1970-01-01
        相关资源
        最近更新 更多