注意:python-docx页眉插入图像仅支持插入“嵌入式”图像,即内联形状。

一、清除原页眉图像

我查到如下方法:

for i in range(len(footer.paragraphs)):paragraph = document.paragraphs[i] print('删除前图形图像的数量:', len(document.inline_shapes)) paragraph.clear() # 删除段落print('删除后图形图像的数量:', len(document.inline_shapes)) 

但运行后发现无法解决我的问题。图像还是在文档页眉中。

根据python-docx 文档:了解图片和其他形状 — python-docx 0.8.11 文档

从概念上讲,Word 文档有两个图层,一个文本图层和一个绘图图层。在文本图层中,文本对象从左到右以及从上到下排列,在填充前一个页面时开始新页面。在绘图层中,绘图对象(称为形状)放置在任意位置。这些有时称为浮动形状。

图片是可以出现在文本或绘图层中的形状。当它出现在文本图层中时,它被称为内联形状,或者更具体地说,称为内联图片

内联形状被视为大文本字符(字符字形)。增加行高以适应形状,并且形状将换行为适合宽度的行,就像文本一样。在其前面插入文本将导致其向右移动。通常,图片单独放置在段落中,但这不是必需的。它可以在放置它的段落中具有前后文本。

在撰写本文时,仅支持内联图片。

问题解决了,上面代码clear是通过段落来clear的,如果图像是处在绘图层,则将无法使用该方法清除。

那如果原页眉的图像在绘图层应该怎么办?

查阅文档后发现,可以使用这种方法:

# 清空原页眉(默认只有一节的时候)
header.is_linked_to_previous = True

即与上一节保持一致,由于文档默认只有一节,选取sections[0]时就可以达到清除页眉页脚定义的目的。Section objects — python-docx 0.8.11 documentation

True分配给此属性将删除此部分的页眉/页脚定义,使其"继承"上一节的相应定义。

False分配会导致为此部分添加新的空定义,但前提是尚不存在任何定义。

二、插入图像

通过文档可知,python-docx现仅支持内联图片,即使用run.add_picture()方法仅能将其插入文本层。

1.一般的插入方法如下:

# 获取页眉的第一个/最后一个段落header_para = header.paragraphs[-1]# 设置段落居中header_para.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER# 添加页眉内容run = header_para.add_run()run.add_picture(os.getcwd() + "/logos-source/test_header.png",height=docx.shared.Cm(2.2))

插入图像是通过段落的run对象进行插入的,run.add_picture(img,width,height)当宽高仅设置一个时将会按图像比例自动缩放

图像的位置是以段落居中/左对齐/右对齐设置的

2.style

Q: 上述一般方法我都试了,可是我想要的是图片能紧贴页面顶部/底部,紧贴左右的怎么办?

A:  可以通过设置节属性实现

# style1:与页边距齐平
header_para.paragraph_format.left_indent = 0
header_para.paragraph_format.right_indent = 0#style2:横穿整个页面故段落边距紧贴页边
header_para.paragraph_format.left_indent = - document.sections[0].left_margin
header_para.paragraph_format.right_indent = - document.sections[0].right_margin

代码解释:style2

段落左缩进是负数时会挂起缩进,设置为负页边距即可紧贴页面。

缩进=0时,与页面左侧距离=页边距

3.图像参数

如果不知道如何设置自适应图像的高度以适配页眉,可将top_margin(即顶端页边距)作为其高度。

run.add_picture(os.getcwd() + "/logos-source/test_header.png",height = document.sections[0].top_margin)

如果本文对你有所帮助,求个三连不过分吧?

(下次也不一定,略略略!)

python-docx 页眉-清除原页眉图像插入自适应图像相关推荐

  1. word设置页码不在第一页开始;删除页眉横线的小技巧

    (word 2003下操作)上网找如何在WORD中设置页码不在第一页开始,如何删除页眉横线等等细节操作.既然发觉有些都系讲得不明不白,可能是自己理解问题,用自己的语言总结下: WORD中设置页码不在第 ...

  2. 奥斯汀页眉怎么设置_编辑页眉页脚怎么样每页不相同(编辑页眉页脚设置教程分享)...

    除分享删除方法外,还分享页眉横线的本质.接下来看它们具体的操作方法,操作所用 Word 版本为 Word 2016. 一.Word 页眉基本操作 (一)Word 插入页眉 1.选中"插入&q ...

  3. Office WORD如何为每一页设置不同的页眉页脚

    如下图所示,我想要为封面和目录,摘要等等设置不同的页眉页脚(一般封面和目录不需要页脚) 而从正文开始,套用相同的页眉和以页数作为页脚(注意"第一章 绪论"不是这个文档的第一页) 具 ...

  4. Word中只修改某一页的页眉页脚,其它页的保持不变

    参考:只修改某一页页眉页脚 问题来源:在用word2013编辑页眉页脚时,所有页的页眉和页脚都同时变化,但现在只需要修改某一页的内容,其它的页不变. **解决方法:**Word 2007.Word 2 ...

  5. 论文页眉设置 奇偶页页眉均为章序及章标题 论文按章节设置页眉

    文章目录 1 问题描述 2 解决办法 2.1 每一章添加分节符 2.2 分章添加页眉 3 可能遇到问题 页眉要求: 页眉使用宋体5号字,居中排列: 页眉从正文第1章开始标注. 硕士学位论文单面打印,奇 ...

  6. 论文中英文摘要、目录、每章的页眉不同,页脚处的页码自动连续设置方法

    第一步 :设置不同页眉 设置不同页眉 第二步:为页码连续做准备工作 为页码连续做准备工作 第三步:页码自动连续 页码自动连续

  7. 如何在正文插入页眉页脚 要求奇偶页不一样

    一.从第3页开始插入页码,起始页为1. WORD2003 1.将光标定位在第2页末尾处,点击"插入--分隔符--(分节符类型)下一页".按确定. 2.点击"视图--页眉和 ...

  8. 简单步骤:wps如何从一页之后开始定义页眉和页脚

    一般以前word都是用分节符分割前一页和后一页的页眉和页脚.而在wps中使用却很方便.步骤入下: 1 光标点击希望添加页眉和页脚的所在页 插入-->页眉和页脚,写入要添加的页眉和页脚内容.这时候 ...

  9. latex设置页边距和页眉页脚

    简单的定义: \usepackage[margin=2cm]{geometry} 复杂的定义: 使用geometry宏包,可以让页边距和页眉页脚的设置变得非常简单 \documentclass[a4p ...

最新文章

  1. Linux文件,文件描述符以及dup()和dup2()
  2. 免费版CloudFlare CDN基本设置参考
  3. c语言作业集答案,C语言习题集及答案
  4. 1.什么是数据化运营——《数据挖掘与数据化运营实战》
  5. DataFrame 删除与增减行列
  6. (String)、toString、String.valueOf的区别
  7. jquery ajax.then,jQuery动态AJAX Promise链
  8. 20101008 搬家
  9. java中多维数组的clone容易引起误解
  10. 厉害!苏宁通过citus打造分布式数据库抗住DB高负载
  11. Django账号绑定邮箱时发送链接
  12. torchtext 各种数据集加载
  13. 消息中间件学习总结(9)——RocketMQ与kafka差异比较分析
  14. 2021年,彩票店还开的下去吗?
  15. 集合类ArrayList、HashMap、HashSet线程不安全
  16. 如何获取Class类对象?
  17. 软件工程期中作业-阅读和提问
  18. 电机学重难点归纳(长期更新)
  19. flutter 加载gif图片
  20. sin傅里叶变换公式_傅里叶变换公式(傅里叶变换常用公式)

热门文章

  1. Movie Recommendation电影推荐
  2. 2020年大学计算机基础实验4,2020年新版大学计算机基础实验报告word操作word.docx...
  3. 阻止微信浏览器/QQ浏览器弹框“在浏览器打开”
  4. 经典】供方该如何开展批次管理?全面
  5. 信息安全行业入门与各类技术简介
  6. c++获取文件信息——_stat函数的使用
  7. 微信小程序城市选择--iview weapp组件
  8. 池州学院数学计算机科学,池州学院数学与计算机科学系.ppt
  9. linux下glew例子,ubuntu 下编译glew (opengl扩展库)
  10. 树莓派2使用酷芯微C201-D图传模块的使用总结