python-docx 页眉-清除原页眉图像插入自适应图像
注意: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 页眉-清除原页眉图像插入自适应图像相关推荐
- word设置页码不在第一页开始;删除页眉横线的小技巧
(word 2003下操作)上网找如何在WORD中设置页码不在第一页开始,如何删除页眉横线等等细节操作.既然发觉有些都系讲得不明不白,可能是自己理解问题,用自己的语言总结下: WORD中设置页码不在第 ...
- 奥斯汀页眉怎么设置_编辑页眉页脚怎么样每页不相同(编辑页眉页脚设置教程分享)...
除分享删除方法外,还分享页眉横线的本质.接下来看它们具体的操作方法,操作所用 Word 版本为 Word 2016. 一.Word 页眉基本操作 (一)Word 插入页眉 1.选中"插入&q ...
- Office WORD如何为每一页设置不同的页眉页脚
如下图所示,我想要为封面和目录,摘要等等设置不同的页眉页脚(一般封面和目录不需要页脚) 而从正文开始,套用相同的页眉和以页数作为页脚(注意"第一章 绪论"不是这个文档的第一页) 具 ...
- Word中只修改某一页的页眉页脚,其它页的保持不变
参考:只修改某一页页眉页脚 问题来源:在用word2013编辑页眉页脚时,所有页的页眉和页脚都同时变化,但现在只需要修改某一页的内容,其它的页不变. **解决方法:**Word 2007.Word 2 ...
- 论文页眉设置 奇偶页页眉均为章序及章标题 论文按章节设置页眉
文章目录 1 问题描述 2 解决办法 2.1 每一章添加分节符 2.2 分章添加页眉 3 可能遇到问题 页眉要求: 页眉使用宋体5号字,居中排列: 页眉从正文第1章开始标注. 硕士学位论文单面打印,奇 ...
- 论文中英文摘要、目录、每章的页眉不同,页脚处的页码自动连续设置方法
第一步 :设置不同页眉 设置不同页眉 第二步:为页码连续做准备工作 为页码连续做准备工作 第三步:页码自动连续 页码自动连续
- 如何在正文插入页眉页脚 要求奇偶页不一样
一.从第3页开始插入页码,起始页为1. WORD2003 1.将光标定位在第2页末尾处,点击"插入--分隔符--(分节符类型)下一页".按确定. 2.点击"视图--页眉和 ...
- 简单步骤:wps如何从一页之后开始定义页眉和页脚
一般以前word都是用分节符分割前一页和后一页的页眉和页脚.而在wps中使用却很方便.步骤入下: 1 光标点击希望添加页眉和页脚的所在页 插入-->页眉和页脚,写入要添加的页眉和页脚内容.这时候 ...
- latex设置页边距和页眉页脚
简单的定义: \usepackage[margin=2cm]{geometry} 复杂的定义: 使用geometry宏包,可以让页边距和页眉页脚的设置变得非常简单 \documentclass[a4p ...
最新文章
- Linux文件,文件描述符以及dup()和dup2()
- 免费版CloudFlare CDN基本设置参考
- c语言作业集答案,C语言习题集及答案
- 1.什么是数据化运营——《数据挖掘与数据化运营实战》
- DataFrame 删除与增减行列
- (String)、toString、String.valueOf的区别
- jquery ajax.then,jQuery动态AJAX Promise链
- 20101008 搬家
- java中多维数组的clone容易引起误解
- 厉害!苏宁通过citus打造分布式数据库抗住DB高负载
- Django账号绑定邮箱时发送链接
- torchtext 各种数据集加载
- 消息中间件学习总结(9)——RocketMQ与kafka差异比较分析
- 2021年,彩票店还开的下去吗?
- 集合类ArrayList、HashMap、HashSet线程不安全
- 如何获取Class类对象?
- 软件工程期中作业-阅读和提问
- 电机学重难点归纳(长期更新)
- flutter 加载gif图片
- sin傅里叶变换公式_傅里叶变换公式(傅里叶变换常用公式)
热门文章
- Movie Recommendation电影推荐
- 2020年大学计算机基础实验4,2020年新版大学计算机基础实验报告word操作word.docx...
- 阻止微信浏览器/QQ浏览器弹框“在浏览器打开”
- 经典】供方该如何开展批次管理?全面
- 信息安全行业入门与各类技术简介
- c++获取文件信息——_stat函数的使用
- 微信小程序城市选择--iview weapp组件
- 池州学院数学计算机科学,池州学院数学与计算机科学系.ppt
- linux下glew例子,ubuntu 下编译glew (opengl扩展库)
- 树莓派2使用酷芯微C201-D图传模块的使用总结