Python docx中使用add_text()设置文本加粗的方法求助
解决Python-docx中add_text()无法设置文本加粗的问题
你这段代码里header_run.add_text(rml_header).bold=True不生效的原因很明确:add_text()返回的是Text对象,而文本的加粗格式(bold)是由该文本所属的Run对象控制的,Text对象本身没有设置格式的权限,所以直接给它赋值bold=True不会产生任何效果。
下面提供两种不需要改动add_text()函数的解决方法:
方法1:为加粗文本单独创建Run对象
把需要加粗的标题放在独立的Run中,先给这个Run设置bold=True,再用add_text()添加内容:
section = doc.sections[0] # 获取文档节 sec_header = section.header # 获取页眉 header_tp = sec_header.add_paragraph() # 在页眉中添加段落 # 第一个Run用于放置图片 header_run = header_tp.add_run() header_run.add_picture(logo_path, width=Inches(1.24), height=Inches(0.30)) # 添加图片 rml_header = "\t\t\t\t\t Project completion report" # 创建新的Run专门放置加粗标题 bold_run = header_tp.add_run() bold_run.bold = True bold_run.add_text(rml_header) # 添加分隔线文本,可复用原有Run header_run.add_text("\n_____________________________________________________________") header_run.font.size = Pt(14)
方法2:临时切换当前Run的加粗状态
在添加加粗文本前,先将当前Run的bold设为True,添加完文本后再关闭加粗,避免后续文本被意外加粗:
section = doc.sections[0] # 获取文档节 sec_header = section.header # 获取页眉 header_tp = sec_header.add_paragraph() # 在页眉中添加段落 header_run = header_tp.add_run() # 在段落中添加Run header_run.add_picture(logo_path, width=Inches(1.24), height=Inches(0.30)) # 添加图片 rml_header = "\t\t\t\t\t Project completion report" # 开启当前Run的加粗模式 header_run.bold = True header_run.add_text(rml_header) # 关闭加粗模式,确保后续文本不加粗 header_run.bold = False header_run.add_text("\n_____________________________________________________________") header_run.font.size = Pt(14)
内容的提问来源于stack exchange,提问作者ismail
相关产品推荐
相关产品推荐

