【办公类-47-01】20240404 Word内部照片批量缩小长宽(课题资料系列)

作品展示

06a7df90ac6448509e39d4cc831cc19d.png

背景需求

最近在做《运用Python优化3-6岁幼儿学习操作材料的实践研究》的课题研究资料(上半学期和下半学期)。

将CSDN里面相关的研究照片文字贴入Word后,就发现一张图片就占了A4竖版一页,太大了。我想把word里面的所有照片的长宽缩小。

8c661d375dcc4b21997bd55de6205c86.png

 

设计过程:

1、花了7天时间,每天都在用AI对话大师和百度AI寻找Python代码,但是都没有成功实现图片缩小

149318e326da4e1fb6dba6552a33fedc.pngf7135e6a3a1843f2972c14e03c6bb822.png2、最后我从百度上搜索到一个非常短的代码,终于实现了图片长宽缩小的需求。

35247076cbde4ea2bf655b39fbd22abd.png

代码展示:

'''
docx内部的图片太大了,需要等比例缩小长宽
作者:
# https://www.5axxw.com/questions/content/keey3a
# https://www.geeksforgeeks.org/working-with-images-python-docx-module/
# https://python-docx.readthedocs.io/en/latest/index.html
AI对话大师写了备注说明时间:2024年4月3日
'''path = r'C:\Users\jg2yXRZ\OneDrive\桌面\06 大课题Python'# 导入docx库。
import docx
# 使用docx.Document()函数打开指定路径的Word文档。
doc = docx.Document(path+r'\1.docx')# 获取文档的页面宽度和左右边距,计算出文本区域的宽度(即去除边距后的实际可用宽度)。
text_width = doc.sections[0].page_width - doc.sections[0].left_margin - doc.sections[0].right_margin# 使用enumerate()函数遍历文档中的内联图片(即插入到文本中的图片)。
for i, image in enumerate(doc.inline_shapes):# 获取每个图片的原始宽度和高度original_width, original_height = image.width, image.height# 根据文本区域的宽度计算新的高度,保持图片的宽高比。new_height = int(original_height * text_width / original_width)# 设置图片的宽度为文本区域的宽度,高度为计算得到的新高度。image.width = text_widthimage.height = new_height
# 使用doc.save()函数保存修改后的文档,指定保存路径。
doc.save(path+r'\2.docx')
# # 保存修改后的文档。

结果展示:

1、直接插入图片后,源文件有162页,一张图片占一页

3c0b1d6cd2cb42d1a6b51ed4d890b130.png

8c661d375dcc4b21997bd55de6205c86.png

图片显示不全

0aec3cabbf204e92969b49bb5f643d58.png

有162页!7a75bc3be8d446fea00a20390a591c91.png

2、用代码缩小图片长宽后,容量少了5MB

a3d837319a244ec491959e9a8bf3bb7b.png

页面稍微少一点,一页显示一张整图(图片整页都显示了,右侧没有遮挡)

4d1a3248b30d460698a6a72fe4a4b756.png

129页

69b0acfaf92847139599e696d9a0e7b9.png

分析:此代码是将图片依据竖版宽度进行等比例缩小,确保每张图片都能再一页上被看清楚,有些图片还是一页大小,占页面。

 

 

于是我微调了代码,把照片的长宽除以2

1cd691046f2a451092d3f9c945dd0fb3.png

代码展示:

'''
docx内部的图片太大了,需要等比例缩小长宽 除以2
作者:
# https://www.5axxw.com/questions/content/keey3a
# https://www.geeksforgeeks.org/working-with-images-python-docx-module/
# https://python-docx.readthedocs.io/en/latest/index.html
AI对话大师写了备注说明时间:2024年4月3日
'''path = r'C:\Users\jg2yXRZ\OneDrive\桌面\06 大课题Python'# 导入docx库。
import docx
# 使用docx.Document()函数打开指定路径的Word文档。
doc = docx.Document(path+r'\1.docx')# 获取文档的页面宽度和左右边距,计算出文本区域的宽度(即去除边距后的实际可用宽度)。
text_width = doc.sections[0].page_width - doc.sections[0].left_margin - doc.sections[0].right_margin# 使用enumerate()函数遍历文档中的内联图片(即插入到文本中的图片)。
for i, image in enumerate(doc.inline_shapes):# 获取每个图片的原始宽度和高度original_width, original_height = image.width, image.height# 根据文本区域的宽度计算新的高度,保持图片的宽高比。new_height = int(original_height * text_width / original_width)# 设置图片的宽度为文本区域的宽度,高度为计算得到的新高度。image.width = int(text_width/2)image.height = int(new_height/2)
# 使用doc.save()函数保存修改后的文档,指定保存路径。
doc.save(path+r'\2.docx')
# # 保存修改后的文档

图片尺寸变化,但图片容量不变

e7686af4a014481bbf530c12e80c00b9.png

除以2后,照片的长宽变小了,页面少很多

06a7df90ac6448509e39d4cc831cc19d.pngb7badf2b7b7a477a9d7ad4751cc600ba.png

只有69页了,

1aeab5d9fa3e4fd893e79e0ad95d810f.png

图片占页宽的一半,基本符合我的需求(一行2列,插入两张照片)

d2693d368a21433b9e32b3d9162e3c55.png

 

完成了!

现阶段的AI模型还无法覆盖所有的Python编程功能,因此感谢网络大神的无偿分享,帮助我解决迫在眉睫的需求。

有了这个批量调整docx内部照片的代码,就能提高我制作课题阶段资料的速度了,

https://www.5axxw.com/questions/content/keey3ahttps://www.5axxw.com/questions/content/keey3a

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/297507.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

入门用Hive构建数据仓库

在当今数据爆炸的时代,构建高效的数据仓库是企业实现数据驱动决策的关键。Apache Hive 是一个基于 Hadoop 的数据仓库工具,可以轻松地进行数据存储、查询和分析。本文将介绍什么是 Hive、为什么选择 Hive 构建数据仓库、如何搭建 Hive 环境以及如何在 Hi…

unity学习(82)——profiler 限制帧率

实际测试发现当玩家个数增加时,客户端明显变的很卡,想知道为什么变卡了! 1.只有玩家自己的时候 2.两个时候感觉脚本的工作量增大了 拖了一会直接炸了!(数据包积压把内存搞炸,我第一次见) 3.我觉…

哈佛大学商业评论 --- 第三篇:真实世界中的增强现实

AR将全面融入公司发展战略! AR将成为人类和机器之间的新接口! AR将成为人类的关键技术之一! 请将此文转发给您的老板! --- 本文作者:Michael E.Porter和James E.Heppelmann 虽然物理世界是三维的,但大…

数据结构课堂考勤管理系统

摘要 高校的不断扩张让在校学生数量不断的增加,对于教师和管理人员的需求也在不断地增强,对日常的学生考勤管理的工作量也在日益增加,传统的人工点名签到的考勤管理模式已经给无法适用于当前高校考勤管理的需求,同时手动录入的考…

Transformer学习: Transformer小模块学习--位置编码,多头自注意力,掩码矩阵

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Transformer学习 1 位置编码模块1.1 PE代码1.2 测试PE1.3 原文代码 2 多头自注意力模块2.1 多头自注意力代码2.2 测试多头注意力 3 未来序列掩码矩阵3.1 代码3.2 测试掩码 1 …

电工技术学习笔记——直流电路及其分析方法

一、直流电路 电路的组成 1. 电压和电流的参考方向 电压(Voltage):电压是电场力对电荷产生的作用,表示为电荷单位正电荷所具有的能量。在电路中,电压通常被定义为两点之间的电势差,具有方向性,…

【前端面试3+1】11 http和https有何不同及https的加密过程、数组有哪些方法及作用、tcp三次握手四次挥手、【分发饼干】

一、http和https有何不同?https的加密过程 1、不同: HTTP和HTTPS的主要区别在于安全性。HTTP是超文本传输协议,是一种用于传输数据的协议,但是传输的数据是明文的,容易被窃听和篡改。而HTTPS是在HTTP基础上加入了SSL/T…

五、企业级架构之Nginx负载均衡

一、负载均衡技术 1、介绍: 负载均衡技术(Load Balance)是一种概念,其原理就是把分发流量、请求到不同的服务器,平均分配用户请求。 2、作用: ① 流量分发,请求平均,提高系统处理…

idea改vm参数后没法重启

背景 Idea2023修改了编译器compiler内存,maven的run time内存,idea安装目录下idea64.exe.vmoptions选项的jvm内存参数后导致idea启动时没有任何反应,也没有任何日志输出 idea2023没法重启 导致idea2023没法重启的操作步骤如下 1.修改idea的…

腾讯云服务器4核8g配置好不好?用它干啥使?

腾讯云4核8G服务器多少钱?腾讯云4核8G轻量应用服务器12M带宽租用价格646元15个月,活动页面 txybk.com/go/txy 活动链接打开如下图所示: 腾讯云4核8G服务器优惠价格 这台4核8G服务器是轻量应用服务器,详细配置为:轻量4核…

国外媒体推广软文宣发:促进海外宣发新风尚,迈向国际舞台

大舍传媒http://www.dashemeijie.com 序言 伴随全球经济一体化发展趋向,越来越多的中国企业希望在国际舞台上表现自己的总体水平。而国外媒体软文发稿作为一种全新的海外宣传方式,正逐渐成为促进海外宣发新风尚的主要常用工具。接下来我们就探讨国外媒…

深入浅出 -- 系统架构之垂直架构

当业务复杂度增加、访问量逐渐增大出现高并发时,单体架构无法满足需求,可以根据业务功能对系统进行拆分,以提高访问效率。 垂直架构介绍 1.垂直架构一般是因为单体架构太过于庞大而进行的拆分,拆分后各个系统应满足独立运行互相不…

关于hive启动的相关问题记录

问题:初始化hive元数据报错 [atguiguhadoop102 software]$ schematool -initSchema -dbType mysql -verboseError: Table CTLGS already exists (state42S01,code1050) Closing: 0: jdbc:mysql://hadoop102:3306/metastore?useSSLfalse org.apache.hadoop.hive.me…

中文Mistral模型介绍(Chinese-Mistral)——中文大语言模型

中文Mistral简介 Chinese-Mistral由清华大学地学系地球空间信息科学实验室开发。 该模型基于Mistral发布的Mistral-7B-v0.1训练得到。首先进行中文词表扩充,然后采用实验室提出的PREPARED训练框架(under review)在中英双语语料上进行增量预训…

C++核心高级编程 --- 4.类和对象

文章目录 第四章:4.类和对象4.1 封装4.1.1 封装的意义4.1.2 struct与class的区别 4.2 对象的初始化和清理4.2.1 构造函数和析构函数4.2.2 构造函数的分类及调用4.2.3 拷贝构造函数调用时机4.2.4 构造函数调用规则4.2.5 深拷贝与浅拷贝4.2.6 初始化列表4.2.7 类对象作…

树莓派部署yolov5实现目标检测(ubuntu22.04.3)

最近两天搞了一下树莓派部署yolov5,有点难搞(这个东西有点老,版本冲突有些包废弃了等等) 最后换到ubuntu系统弄了,下面是我的整体步骤(建议先使能一下ssh(最下面有),结合…

Redis中的复制功能(五)

心跳检测 概述 在命令传播阶段&#xff0c;从服务器默认会以每秒一次的频率&#xff0c;向主服务器发送命令: REPLCONF ACK < replication_offset >其中replication_offset是从服务器当前的复制偏移量。 发送REPLCONF ACK命令对于主从服务器有三个作用: 1.检测主从服…

一、企业级架构之LNMP

一、LNMP 概述 1、LNMP之间的关系&#xff1a; LNMP Linux Nginx MySQL PHP 2、配置LNMP服务器&#xff1a; (1) 克隆一台centos7虚拟机&#xff0c;修改 IP 地址 和 UUID 编号。 IP 为 10.1.1.10&#xff0c;UUID 修改后三位。 (2) 设置主机名称&#xff0c;绑定IP地…

GraalVM运行模式和企业级应用

文章目录 GraalVM运行模式JIT模式AOT模式 GraalVM的问题和解决方案GraalVM企业级应用传统架构的问题Serverless架构函数计算Serverless应用场景Serverless应用 GraalVM内存参数 GraalVM运行模式 JIT模式 JIT&#xff08; Just-In-Time &#xff09;模式 &#xff0c;即时编译模…

SCI一区 | Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测

SCI一区 | Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介绍模型…