新行/制表符在生成的文档中变成空格

问题描述 投票:0回答:2

我对

\n
\t
标签有疑问。当我在
OpenOffice
中打开生成的 .docx 时,一切看起来都很好,但是当我在 Microsoft Word 中打开同一文档时,我只在
"Surname"
部分中得到最后两个制表符,并在其他部分中得到空格而不是换行符/制表符部分。怎么了?

p = document.add_paragraph('Simple paragraph')
p.add_run('Name:\t\t' + name).bold = True
p.add_run('\n\nSurname:\t\t' + surname)
python python-docx
2个回答
3
投票

在Word中,我们通常认为的换行符转换为段落对象。如果您想在文档中添加空段落,则需要明确插入它们。

首先,您应该询问是否使用段落进行格式化,这是 Word 用户常见的休闲做法,但您可能希望以不同的方式处理,特别是通过使用 space-before 和/或 space-after 属性的一个段落。在 HTML 中,这大致对应于 padding-top 和 padding-bottom。

在这种情况下,如果您只需要换行符,请考虑使用如下段落:

document.add_paragraph('Simple paragraph')
p = document.add_paragraph()
p.add_run('Name:\t\t').bold = True
p.add_run(name)
document.add_paragraph()
p = document.add_paragraph()
p.add_run('Surname:\t\t').bold = True
p.add_run(surname)

0
投票

我让它像这样工作:

p = document.add_paragraph()
tab_count = 2
invoice_nr = '2024-5'

run = p.add_run()
run.add_text(f'Invoice nr.')
run.add_text(f'\t'*tab_count)
run.add_text(invoice_nr)
© www.soinside.com 2019 - 2024. All rights reserved.