我正在使用以下代码:

def header_build(self, boldText, dataText):
    # document.add_heading('Document Title', 0)
    p = self.document.add_paragraph()
    p.style = self.document.styles['Body Text']
    p.style.font.size = Pt(12)
    p.style.font.name = 'Times New Roman'
    p.add_run(boldText).bold = True
    p.add_run(dataText)


当我使用header_build函数时,其想法是:

header_build(self, boldText='Owner: ', dataText='Name')


得到以下内容:

所有者:姓名

问题是我要尝试获取的文本之前要换行。

最佳答案

问题:

我认为这是因为您要添加到手动创建的现有文档(该文档为空)(不使用python-docx)。好像在创建文档时创建了paragraphs[0],因此当您使用add_paragraph()添加新段落时,它正在创建另一个段落paragraphs[1],而第一段为空。

解:

有两种解决方案:

您可以在段落[0]中插入文本,而不是创建新的段落:

def header_build(self, boldText, dataText):

    # paragraph[0]
    p= self.document.paragraphs[0]

    p.style = document.styles['Body Text']
    p.style.font.size = Pt(12)
    p.style.font.name = 'Times New Roman'
    p.add_run(boldText).bold = True
    p.add_run(dataText)
    print p.text




或者,您可以使用python-docx创建一个新文档,然后使用将为add_paragraph()paragraphs[0](不对header_build函数进行任何更改):

# create a new document
document = Document()

关于python - docx中的add_paragraph()添加换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42963372/

10-14 19:29