我正在尝试通过以下方式(通过python docx)在创建的word docx中构建一个SINGLE段落:
text kjdfkjshfkjshfdkjhskjdhf
kjdhfksdfkhsgfdghsf
ksjdgfkjsgkjfgjsgf
问题是,如果实际页面的剩余空间不足以将所有内容打印在一页上,那么我需要确保本段不会被分解。因此,我需要链接三个段落以达到我想要的目的(能够在中间必须缩进该段落的第一行;简单地构建上下两行,而不用下划线缩进)。但是,当我仅构建三个段落并为前两个段落设置.paragraph_format.keep_together
和.paragrapgh_format.keep_with_next modules = True
时,这是行不通的(对于最后一个段落,只有.paragraph_format.keep_together
set = True
)。下面代码的执行(仅适用于相关部分)可以完美地工作,问题是,如果页面上没有足够的空间来容纳所有代码,则上一行和/或下一行将被分隔开,而中间部分甚至无法填充页面的一半(有足够的空间将所有页面放到一页上,但会中断)。这告诉我,我没有成功将三个段落相互链接。救命? (我正在从单词表中复制内容,所有内容都可以根据需要完美复制;唯一的问题确实是我的段落破裂了。)
limitor = doc.add_paragraph()
limitor.add_run(separator)
limitor.paragraph_format.keep_together = True
limitor.paragraph_format.keep_with_next = True
ProdPar = doc.add_paragraph()
ProdPar.paragraph_format.keep_together = True
ProdPar.style.font.name = "Times New Roman"
ProdPar.paragraph_format.first_line_indent = Inches(-0.6496)
ProdPar.paragraph_format.left_indent = Inches(0.6496)
ProdPar.add_run(AmountNum + " " + Stücke).bold = True
ProdPar.add_run().add_tab()
table = source.tables[0]
amountofrows = 0
for xx in table.rows:
amountofrows += 1
rownum = amountofrows - 1
for ab in range(rownum):
for par in table.rows[ab].cells[1].paragraphs:
for run in par.runs:
copied_run = ProdPar.add_run(run.text)
if ab == 0:
copied_run.bold=True
elif ab == 1:
copied_run.italic=True
elif ab == 2:
copied_run.underline = True
if run.text == Spezif:
copied_run.italic = True
copied_run.underline = True
ProdPar.add_run("\n")
ProdPar.add_run("\n")