如何消除Python-docx中文本与图片间的空白行?
解决Python-docx中文本与图片间空白行的问题
方法1:移除段落的段后间距
空白行大概率是因为文本段落(paragraph3)自带段后间距,直接将该段落的段后间距设为0即可消除空隙:
from docx.shared import Pt # 保留原段落创建代码 paragraph3 = doc.add_paragraph( text_dict["title_before_graph1"][0], style=style_object["competence_" + text_dict["title_before_graph1"][1]], ) paragraph3.alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFY # 添加该行,将段后间距设为0 paragraph3.paragraph_format.space_after = Pt(0) # 插入图片 doc.add_picture("results/section3/competence_1.png", width=Inches(6.25))
方法2:将图片插入到现有段落末尾
如果不需要图片单独成段,直接把图片追加到文本段落的末尾,让文本和图片同属一个段落,自然不会出现空白行:
# 保留原段落创建代码 paragraph3 = doc.add_paragraph( text_dict["title_before_graph1"][0], style=style_object["competence_" + text_dict["title_before_graph1"][1]], ) paragraph3.alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFY # 向该段落新增一个run并插入图片 img_run = paragraph3.add_run() img_run.add_picture("results/section3/competence_1.png", width=Inches(6.25))
两种方法按需选择:若要保持文本和图片的段落独立性但消除空隙,选方法1;若希望图片紧跟文本同属一段,选方法2。
内容的提问来源于stack exchange,提问作者Aleksandre Bregadze
相关产品推荐
相关产品推荐

