python-docx -- 读取word页眉、页脚
文章目录
- sections介绍
- 访问section
- 添加section
- 页眉、页脚
- 综合案例:
sections介绍
- word支持section的概念,即一个文档的划分部分,不同的部分均包含相同的页面布局设置,如相同的边距、页面方向等;
- 在每个section中可以定义页眉、页脚来应用于该section下的所有页面;
- 大部分word文档中都是默认有一个section;
访问section
>>> document = Document("xx.docx")
>>> sections = document.sections
>>> sections
<docx.parts.document.Sections object at 0x1deadbeef>
>>> len(sections)
3
>>> section = sections[0]
添加section
>>> current_section = doc.sections[-1]
>>> current_section.start_type
NEW_PAGE (2)
>>> new_section = doc.add_section(WD_SECTION.ODD_PAGE)
>>> new_section.start_type
ODD_PAGE (4)
section对象有11个属性:
- section.start_type, 该部分的中断类型;
from docx.enum.section import WD_SECTIONsection = document.sections[0]
section.start_type = WD_SECTION.NEW_PAGE
- section.orientation,页面方向,如portrait 纵向,landscape横向;
- section.page_width 页面宽度;如Inches(8.5);
- section.page_height 页面高度;
- section.left_margin 文本内容距离页面的左边距;
- section.right_margin 右边距;如1143000,可以继续调用right_margin属性.inches/pt/cm 获取对应单位的距离值;
- section.top_margin 上边距;
- section.bottom_margin 下边距;
- section.gutter
- section.header_distance 与页眉的距离;
- section.footer_distance 与页脚的距离;
页眉、页脚
每个section对象有自己的页眉、页脚,
访问方式:
>>> section = doc.sections[0]
>>> header = section.header
>>> header
<docx.section._Header object at 0x...>
>>> footer = section.footer>>> header._element # 获取底层的xml元素,依次遍历内部的CT_P、CT_Tbl对象并解析即可;
>>> footer._element
综合案例:
在word中添加如下页眉内容,并解析(解析页脚类似):
- 四个段落文本;
- 一个表格;
- 一个图片;
- 一个矩形框图形;
完整代码:
def get_graphic_with_pywin32(doc_path):""" 基于pywin32 解析文档主体中的图形 """global graphicsword = get_word_instance()doc = word.Documents.Open(doc_path)for section in doc.Sections:for header in section.Footers:for shape in header.Shapes:inline_shape = shape.ConvertToInlineShape()bdata = inline_shape.Range.EnhMetaFileBits.tobytes() # 直接保存无法查看img = PillowImage.open(BytesIO(bdata))img.save("./{}.png".format(shape.Name))with open("./{}.png".format(shape.Name), "rb") as f:bdata = f.read() # 读取的字节 与 image.tobytes() 不一样graphics[
相关文章:
python-docx -- 读取word页眉、页脚
文章目录 sections介绍访问section添加section页眉、页脚综合案例:sections介绍 word支持section的概念,即一个文档的划分部分,不同的部分均包含相同的页面布局设置,如相同的边距、页面方向等;在每个section中可以定义页眉、页脚来应用于该section下的所有页面;大部分wor…...
DRM(数字权限管理技术)防截屏录屏----ffmpeg安装
提示:ffmpeg安装 文章目录 [TOC](文章目录) 前言一、下载二、配置环境变量三、运行ffmpeg四、文档总结 前言 FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的…...
【Linux 篇】Docker 启动和停止的精准掌舵:操控指南
文章目录 【Linux 篇】Docker 启动和停止的精准掌舵:操控指南前言docker基本命令1. 帮助手册 2. 指令介绍 常用命令1. 查看镜像2. 搜索镜像3. 拉取镜像4. 删除镜像5. 从Docker Hub拉取 容器的相关命令1. 查看容器2. 创建与启动容器3. 查看镜像4. 启动容器5. 查看容…...
【电路设计】基于CD4511的八路抢答器电路解析
文章目录 0 前言1 CD45112 电路解析3 锁存分析4 电路优化思考5 总结 0 前言 最近收拾东西的时候找到了本科阶段学电路焊接时焊的一个八路抢答器的电路板,如下图所示。 一共有9个按键,左侧8个为抢答按键,依次对应1-8,按下之后会有…...
Python 爬虫入门教程:从零构建你的第一个网络爬虫
网络爬虫是一种自动化程序,用于从网站抓取数据。Python 凭借其丰富的库和简单的语法,是构建网络爬虫的理想语言。本文将带你从零开始学习 Python 爬虫的基本知识,并实现一个简单的爬虫项目。 1. 什么是网络爬虫? 网络爬虫&#x…...
2024年11月27日Github流行趋势
项目名称:screenshot-to-code 项目维护者:abi clean99 sweep-ai kachbit vagusX项目介绍:通过上传截图将其转换为整洁的代码(支持HTML/Tailwind/React/Vue)。项目star数:62,429项目fork数:7,614…...
深入浅出摸透AIGC文生图产品SD(Stable Diffusion)
hihi,朋友们,时隔半年(24年11月),终于能腾出时间唠一唠SD了🤣,真怕再不唠一唠,就轮不到SD了,技术更新换代是在是太快! 朋友们,最近(24年2月)是真的没时间整理笔记,每天都在疯狂的学习Stable Diffusion和WebUI & ComfyUI,工作实在有点忙,实践期间在飞书上…...
thinkphp日志记录到文件
日志 //控制器中 //这种方法调用的话,在general_technology下按照日期写入日志 LogService::requestLog(general_technology,$this->baseUrl .$url,$params,$res); LogService::responseLog(general_technology/hebei_product_add_error, $syncData,$msg); LogSe…...
WPF ItemsControl控件
ItemsControl 是 WPF 中一个非常灵活的控件,用于显示一组数据项。它是一个基类,许多其他控件(如 ListBox, ListView, ComboBox 等)都是从 ItemsControl 继承而来。ItemsControl 的主要特点是它可以自定义数据项的显示方式…...
【Android+多线程】IntentService 知识总结:应用场景 / 使用步骤 / 源码分析
定义 IntentService 是 Android中的一个封装类,继承自四大组件之一的Service 功能 处理异步请求 & 实现多线程 应用场景 线程任务 需 按顺序、在后台执行 最常见的场景:离线下载不符合多个数据同时请求的场景:所有的任务都在同一个T…...
编译 LLVM 源码,使用 Clion 调试 clang
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 1. LLVM 简介 LLVM 是一个开源的编译器基础架构,最初由 Chris Lattner 于 2000 年在伊利诺伊大学开发,后来成为一个广泛应用于编译器和…...
ssm199旅游景点管理系统设计+jsp(论文+源码)_kaic
毕 业 设 计(论 文) 题目:旅游景点管理系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游景点管理系统…...
在英文科技论文中分号后面的单词首字母需不需要大写
英文科技论文中分号后面的单词首字母需不需要大写 分号后完整句子的首字母规则:1. **首字母不大写**:2. **专有名词大写**:3. **特殊上下文**: 在分号后,即使后面是一个完整的句子(包含主语和谓语ÿ…...
<项目代码>YOLOv8 停车场空位识别<目标检测>
YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…...
微知-lspci访问到指定的PCIe设备的几种方式?(lspci -s bus;lspci -d devices)
通过bdf号查看 -s (bus) lspci -s 03:00.0通过vendor id或者device id等设备查看 -d (device) lspci -d 15b3: #这里是vendor号,所以在前面 lspci -d :1021 #这里是设备号,所以要:在前vendorid和deviceid…...
《Opencv》基础操作<1>
目录 一、Opencv简介 主要特点: 应用领域: 二、基础操作 1、模块导入 2、图片的读取和显示 (1)、读取 (2)、显示 3、 图片的保存 4、获取图像的基本属性 5、图像转灰度图 6、图像的截取 7、图…...
数据湖的概念(包含数据中台、数据湖、数据仓库、数据集市的区别)--了解数据湖,这一篇就够了
文章目录 一、数据湖概念1、企业对数据的困扰2、什么是数据湖3、数据中台、数据湖、数据仓库、数据集市的区别 网上看了好多有关数据湖的帖子,还有数据中台、数据湖、数据仓库、数据集市的区别的帖子,发现帖子写的都很多,而且专业名词很多&am…...
mysql-分析MVCC原理
一、MVCC简介 MVCC是一种用来解决读写冲读的无锁并发控制,也就是为事务分配单增长的时间戳,为每个修改保存一个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照,所以MVCC可以为数据库解决一些问题。…...
【拥抱AI】一文讲述如何配置Milvus?
配置Milvus是一个重要的步骤,它可以帮助你更好地管理和优化向量数据库的性能。以下是一些常见的配置选项和步骤,帮助你设置和优化Milvus。 1. 安装Milvus 首先,确保你已经安装了Milvus。你可以使用Docker来快速部署Milvus。以下是一个基本的…...
Python学习35天
# 定义父类 class Computer: CPUNone MemoryNone diskNone def __init__(self,CPU,Memory,disk): self.disk disk self.Memory Memory self.CPU CPU def get_details(self): return f"CPU:{self.CPU}\tdisk:{self.disk}\t…...
Windows环境下搭建Qwen开发环境
1 参考文献 【官方指引】https://qwen.readthedocs.io/en/latest/ 【ModelScope训练】https://modelscope.cn/docs/%E4%BD%BF%E7%94%A8Tuners 【CUDA下载安装教程】https://blog.csdn.net/changyana/article/details/135876568 【安装cuDNN】https://developer.nvidia.com/…...
jenkins 2.346.1最后一个支持java8的版本搭建
1.jenkins下载 下载地址:Index of /war-stable/2.346.1 2.部署 创建目标文件夹,移动到指定位置 创建一个启动脚本,deploy.sh #!/bin/bash set -eDATE$(date %Y%m%d%H%M) # 基础路径 BASE_PATH/opt/projects/jenkins # 服务名称。同时约定部…...
黑马程序员Java项目实战《苍穹外卖》Day01
苍穹外卖-day01 课程内容 软件开发整体介绍苍穹外卖项目介绍开发环境搭建导入接口文档Swagger 项目整体效果展示: 管理端-外卖商家使用 用户端-点餐用户使用 当我们完成该项目的学习,可以培养以下能力: 1. 软件开发整体介绍 作为一…...
二叉树:堆的建立和应用
在建立堆之前,我们要知道什么是树和二叉树 树 树是一种非线性的数据结构,它是由n(n>0)个结点组成的一个具有层次关系的集合,之所以把它叫做树,是因为它长得像一棵倒挂的树,也就是根在上面&…...
手搓人工智能-最优化算法(1)最速梯度下降法,及推导过程
“Men pass away, but their deeds abide.” 人终有一死,但是他们的业绩将永存。 ——奥古斯坦-路易柯西 目录 前言 简单函数求极值 复杂函数梯度法求极值 泰勒展开 梯度,Nabla算子 Cauchy-Schwarz不等式 梯度下降算法 算法流程 梯度下降法…...
【大数据学习 | Spark-SQL】Spark-SQL编程
上面的是SparkSQL的API操作。 1. 将RDD转化为DataFrame对象 DataFrame: DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。这样的数…...
go+gin+mysql+gorm快速实现增删改查接口
Gin 是一个用 Go (Golang) 编写的轻量级但功能强大的Web框架,具有极高的性能。适合开发API和微服务。 1.安装 Gin 前置任务,首先你本地需要安装过go语言环境 go get -u github.com/gin-gonic/gin这里直接结合项目代码解析gin的主要功能: …...
【国产MCU】-GD32F470-串行外设接口(SPI)
串行外设接口(SPI) 文章目录 串行外设接口(SPI)1、SPI介绍1.1 SPI特性1.2 SPI信号1.3 SPI 时序和数据帧格式1.4 NSS 功能1.5 SPI运行模式2、SPI控制器寄存器列表3、SPI控制器驱动API介绍4、SPI应用4.1 SPI初始化流程4.2 数据发送与接收串行外设接口(Serial Peripheral Int…...
RabbitMQ 集群
文章目录 前言单机多节点搭建集群创建RabbitMQ节点停止服务并重置将节点加入到集群中查看集群状态宕机 结论 前言 RabbitMQ 作为消息中间件,可以与多个生产者和消费者进行绑定,但是如何只有一台 RabbitMQ 服务的话,那么这个 RabbitMQ 就需要…...
Qt实现窗口内的控件自适应窗口大小
前言:因为有时候窗口内的控件比较大,但是为了同时操作多个窗口,希望可以根据情况,在调整窗口大小时,控件能自适应大小,于是通过遍历整个界面内的控件,并在调整大小的事件中按比率调整控件大小实…...
Android基本概念及控件
Android是Google公司基于Linux平台开发的主要应用于智能手机及平板电脑的操作系统。 ART模式与Dalvik模式最大的不同在于:在启用ART模式后,系统在安装应用程序的时候会进行一次预编译,并先将代码转换为机器语言存储在本地,这样在运行程序时就不会每次都…...
云计算的计算包括哪些内容
云计算的计算主要包括以下几种类型: 分布式计算:分布式计算是一种计算方法,它将大型问题分解成多个小任务,然后分配给多个计算机进行处理。这种方法可以提高计算效率和可靠性1。并行计算:并行计算是同时…...
D81【 python 接口自动化学习】- python基础之HTTP
day81 requests请求session用法 学习日期:20241127 学习目标:http定义及实战 -- requests请求session用法 学习笔记: requests请求session用法 import requests# 创建一个会话 reqrequests.session() url "http://sellshop.5istud…...
嵌入式驱动开发详解2(设备挂载问题)
文章目录 前言设备号设备号的组成设备号的分配静态分配动态分配 驱动挂载与卸载设备节点创建驱动挂载出现问题 前言 驱动的设备挂载和卸载是十分重要的内容,一旦操作不当可能会导致系统崩溃,接下来我将用字符设备的驱动挂载原理进行详细讲解,…...
Java全栈开发:宠物医院管理系统项目实战
Java全栈开发:宠物医院管理系统项目实战 项目介绍 本文将介绍一个基于Spring Boot + Vue.js的宠物医院管理系统的开发过程。该系统主要用于帮助宠物医院管理日常运营,包括患者管理、预约挂号、处方开具等功能。 技术栈 后端技术 Spring Boot 2.7.xSpring SecurityMyBatis…...
【设计模式】1. 构建器模式(Builder Pattern)是一种创建型设计模式
构建器模式(Builder Pattern)是一种创建型设计模式,用于分步骤构建复杂对象,同时允许按照不同的需求生成不同的表示。该模式将对象的构建过程与其表示分离,使得相同的构建过程可以创建不同的对象。 核心思想 构建器模…...
Apache Zeppelin:一个基于Web的大数据可视化分析平台
今天给大家推荐一下 Apache Zeppelin,它是一个基于 Web 的交互式数据接入、数据分析、数据可视化以及协作文档 Notebook,类似于 Jupyter Notebook。 Apache Zeppelin 支持使用 SQL、Java、Scala、Python、R 等编程语言进行数据处理和分析,同时…...
在Manjaro Gnome桌面的基础上安装Budgie桌面环境
在Manjaro上安装Budgie桌面环境 Budgie是Solus团队开发的一种简单而优雅的桌面环境。 Budgie是由Solus项目主要开发的流行桌面环境,与GNOME堆栈紧密集成。它提供了简单而优雅的用户体验,并且可用于大多数发行版,如Arch、Debian、Manjaro等。…...
C语言中的指针的解读和强大功能
C语言中的指针是其最强大也是最复杂的特性之一,掌握指针对于深入学习C语言非常重要。以下是对C语言指针的详解: 1. 指针的基本概念 指针是什么: 指针是一个变量,其值是另一个变量的地址。指针的作用: 通过指针&#x…...
44.扫雷第二部分、放置随机的雷,扫雷,炸死或成功 C语言
按照教程打完了。好几个bug都是自己打出来的。比如统计周围8个格子时,有一个各自加号填成了减号。我还以为平移了,一会显示是0一会显示是2。结果单纯的打错了。debug的时候断点放在scanf后面会顺畅一些。中间多放一些变量名方便监视。以及mine要多显示&a…...
【Vue】最新Vue3实战教程:全面掌握响应式数据、v-on事件、v-if/v-show条件渲染及更多核心技术
文章目录 为什么选择Vue3?更多实用工具快速上手Vue3安装与配置项目结构 响应式数据处理创建响应式数据使用ref使用reactive 计算属性与侦听器计算属性侦听器 事件绑定与处理(v-on)基本用法简写语法事件修饰符绑定多个事件 条件渲染࿰…...
实时数仓Kappa架构:从入门到实战
引言 随着大数据技术的不断发展,企业对实时数据处理和分析的需求日益增长。实时数仓(Real-Time Data Warehouse, RTDW)应运而生,其中Kappa架构作为一种简化的数据处理架构,通过统一的流处理框架,解决了传统…...
爬虫笔记24——纷玩岛(某岛)自动抢票脚本笔记
纷玩岛自动抢票,协议抢票思路实现 一、获取Authorization凭证二、几个关键的参数三、几个关键的接口获取参数v,这个参数其实可以写死,可忽略通过价位获取演出的参数信息获取观演人信息,账号提前录入即可提交订单接口 先看实现图&a…...
接口性能优化宝典:解决性能瓶颈的策略与实践
目录 一、直面索引 (一)索引优化的常见场景 (二)如何检查索引的使用情况 (三)如何避免索引失效 (四)强制选择索引 二、提升 SQL 执行效率 (一)避免不必…...
5G NR:带宽与采样率的计算
100M 带宽是122.88Mhz sampling rate这是我们都知道的,那它是怎么来的呢? 采样率 子载波间隔 * 采样长度 38.211中对于Tc的定义, 在LTE是定义了Ts,在NR也就是5G定义了Tc。 定义这个单位会对我们以后工作中的计算至关重要。 就是在…...
python的openpyxl库设置表格样式:字体/边框/对齐/颜色等
学习目录 1. 安装和使用openpyxl库设置表格样式 2 设置字体font 3 设置边框 4 设置对齐方式 5 设置单元格数据格式 6 设置行高和列宽 7 填充单元格颜色 附录-关于颜色说明 本章节主要介绍如何使用openpyxl库设置表格中的一些样式,比如字体,边框…...
Vue报错:error Mixed spaces and tabs no-mixed-spaces-and-tabs——报错处理
最近在写后台管理系统的时候,遇到一个报错Vue报错:error Mixed spaces and tabs no-mixed-spaces-and-tabs 出现这个问题的原因,就是同事那边安装了eslint,用来规范代码风格。Eslint是语法检查工具,缺点是对所写代码要…...
Spring:Spring事务管理代码案例讲解
Spring事务管理知识讲解请见:Spring事务知识点讲解 下面演示一个代码示例进行理解。 需求 两个账户相互转账,并记录日志,即使有转账失败也要记录 需求分析 这里主要是需要开启事务机制来控制转入和转出: 1,创建一…...
【Petri网导论学习笔记】Petri网导论入门学习(十) —— 3.2 关联矩阵与状态方程
目录 3.2 关联矩阵与状态方程定义 3.3 关联矩阵引理 3.4引理 3.5定理 3.4例 3.7例 3.83.2 关联矩阵与状态方程 正如 Petri 网的一个标识可以表示成一个 $ m $ 维非负整数向量一样,Petri 网的结构也可以用一个矩阵来表示。这样,就可以引入线性代数的方法对 Petri 网的性质进行…...
(计算机网络)期末
计算机网络概述 物理层 信源就是发送方 信宿就是接收方 串行通信--一次只发一个单位的数据(串行输入) 并行通信--一次可以传输多个单位的数据 光纤--利用光的反射进行传输 传输之前,要对信源进行一个编码,收到信息之后要进行一个…...