gpt4 book ai didi

python - 添加段落文本时如何使用python-docx删除Word标题中的新行?

转载 作者:太空宇宙 更新时间:2023-11-04 01:57:20 27 4
gpt4 key购买 nike

我已经在 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

但是,问题是 python-docx 将我的文本放在新行的左栏中?

如何去掉第一个添加的段落行?

最佳答案

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

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

第一个答案,也是我最喜欢的一个,是完全避免使用表格。您似乎仅将其用于对齐,并且出于多种原因,使用制表符在这方面做得更好,其中之一是它避免了由于表格内部单元格边距而导致的小错位。

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

本质上,您将制表符添加到单个现有段落,并使用制表符将 Logo 与标题分开。如果您使用右对齐选项卡,则 Logo 与右边距很好地对齐。

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")

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

paragraph = header.paragraphs[0]
p = paragraph._p # ---this is the paragraph XML element---
p.getparent().remove(p)
header.add_table(...)
...
header.add_paragraph()

关于python - 添加段落文本时如何使用python-docx删除Word标题中的新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56523922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com