如何在添加段落文本时使用pythondocx删除单词头中的新行?

2024-09-30 16:21:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经成功地将文本和图像添加到Word标题中的两个单元格表中。在

section = document.sections[0]
header = section.header

htable = header.add_table(1, 2, Inches(6))

htab_cells = htable.rows[0].cells

ht0 = htab_cells[0]
ht1 = htab_cells[1]

ht0.paragraphs[0].text = 'Test project'
run = ht1.paragraphs[0].add_run()
run.add_picture('app/static/images/logo.png', width=Inches(1))
ht1.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.RIGHT

enter image description here

但是,问题是PythonDocx把我的文本放在新行的左栏?在

如何去掉这一段第一行?在


Tags: run图像文本add标题sectionwordheader
1条回答
网友
1楼 · 发布于 2024-09-30 16:21:00

空白(新创建的)部分包含空段落。这种单词东西(称为“故事”)必须始终包含至少一个段落,否则无效,并在加载时触发修复错误。在

所以问题是如何避免表格出现在段落之后。在

第一个答案,也是我最喜欢的答案,就是完全避免使用表格。您似乎只是为了对齐而使用它,而使用制表符在这方面做得更好,原因有很多,其中之一是它避免了由于表内部单元格边距而导致的小偏差。在

此过程在文档中进行了描述:
https://python-docx.readthedocs.io/en/latest/user/hdrftr.html#adding-zoned-header-content

本质上,您可以在现有的单个段落中添加制表符,并使用制表符将徽标与标题分隔开。如果使用右对齐的制表符,则徽标与右边距对齐得很好。在

from docx.enum.text import WD_TAB_ALIGNMENT

paragraph = section.paragraphs[0]
tab_stops = paragraph.paragraph_format.tab_stops
tab_stops.add_tab_stop(Inches(6.5), WD_TAB_ALIGNMENT.RIGHT)

paragraph.text = "My Header Title\t"  #  -note trailing tab char -
run = paragraph.add_run()
run.add_picture("my-logo")

如果确实必须使用表,则需要在添加表之前删除空段落,然后再将其添加回:

^{pr2}$

相关问题 更多 >