【办公类-22-13】周计划系列(5-5)“周计划-05 上传周计划png“ (2024年调整版本)

作品展示——将docx 转PDF转png,保留第一张图片

背景需求:

把周计划内容初步替换后,获得了19周的周计划+教案的docx

需要把周计划第一页的反思内容删除,,然后把第一页横版截图上传班级主页。

需求:周计划docx  截图成png图片,上传

素材准备:

代码展示:

-1、把所有周计划docx打开,删掉反思内容,另存到jpg上传文件夹

import os
from docx import Document
from docx.shared import Pt
from pdf2image import convert_from_path
import shutilpath=r'D:\test\02办公类\91周计划4份_2024年中4班\04 周计划'
old=path+r'\04合成新周计划'
new=path+r'\05jpg上传'
# 处理.docx文件from docx import Document
import osprint('--------1、遍历文件夹,把所有周计划docx打开,删掉反思内容,另存到jpg上传文件夹---------')
folder_path = old
for file_name in os.listdir(folder_path):print(file_name)if file_name.endswith('.docx'):file_path = os.path.join(folder_path, file_name)doc = Document(file_path)table = doc.tables[0]  # 假设第一页只有一个表格cell = table.cell(1, 8)  # 获取第1行第8列的单元格cell.text = ''  # 清空单元格内容doc.save(new+r'\{}'.format(file_name))

2、打开删除过内容的docx文件并转换成pdf文件(存在“05jpg上传”里)

print('--------2、打开docx文件并转换成pdf文件---------')
from docx import Document
from docx2pdf import convert
import os,timefolder_path = new
for file_name in os.listdir(folder_path):if file_name.endswith('.docx'):file_path = os.path.join(folder_path, file_name)pdf_path = file_path.replace('.docx', '.pdf')        # 打开docx文件并转换成pdf文件convert(file_path, pdf_path)time.sleep(1)

转成pdf的时间比较长

3、把每个PDF的每页保存为png图片(一个PDF可能有4-6份)

'--------3、把PDF保存为png图片---------')
import fitz  # PyMuPDF
from PIL import Image# 遍历123文件夹下的所有.pdf文件
folder_path = new
for file_name in os.listdir(folder_path):if file_name.endswith('.pdf'):file_path = os.path.join(folder_path, file_name)# 打开PDF文件pdf_document = fitz.open(file_path)# 逐页将PDF文件转换为PNG图片for page_num in range(pdf_document.page_count):page = pdf_document[page_num]image_list = page.get_pixmap()# 保存为PNG图片image = Image.frombytes("RGB", [image_list.width, image_list.height], image_list.samples)image.save(f"{os.path.splitext(file_path)[0]}{page_num+1}.png")pdf_document.close()

实际上我只需要每个png图片的第一张,也就是以“1.png”结尾的图片

4、删除“05jpg”文件夹下的所有.docx、.pdf和.png文件,如果png文件名称最后是1. png需要保留。

print('------4、删除123文件夹下的所有.docx、.pdf和.png文件,如果png文件名称最后是1. png需要保留。---------')
import osfolder_path = new
files_to_keep = set()  # 用于存储需要保留的文件名# 遍历123文件夹下的所有文件
for file_name in os.listdir(folder_path):file_path = os.path.join(folder_path, file_name)if file_name.endswith('.png') and not file_name.endswith('1.png'):os.remove(file_path)  # 删除不符合条件的.png文件elif file_name.endswith('.png'):files_to_keep.add(file_path)  # 将符合条件的文件路径加入到files_to_keep中elif file_name.endswith('.docx') or file_name.endswith('.pdf'):os.remove(file_path)  # 删除.docx和.pdf文件

运行后瞬间删除了pdf、docx 、和png,只有最后5个字符是“1.png”的文件被保留下来

通过缩略图,可以看到每张图片正好一页,没有缺少内容,反思部分也留出空格。(如果这里出现框架到下一页,少了一部分,可以继续回到前面几步,修改好第一页的框架结构,然后再次用转图代码进行反复制作,直到让图片数量与周次相同)

上传图片完成了,等待UIBOT上传

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

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

相关文章

云桥通SDWAN企业组网的15大应用场景

云桥通SD-WAN企业组网技术在企业网络中有多样化的应用场景,在技术不断迭代升级中,已经越来越匹配现在的互联网环境,其中在这15中常见的应用场景中,使用云桥通SDWAN企业组网可以很好的帮到企业: 分支机构连接优化&#…

C#判断素数的方法:试除法 vs 优化的试除法 vs 米勒-拉宾素数检测算法

目录 1.素数也就质数 2. 试除法 3.优化的试除法_1 4.优化的试除法_2 5.优化的试除法_3 6.米勒-拉宾素数检测算法 1.素数也叫质数 一个质数是一个大于1的自然数,只有两个正因数:1和它自身。这意味着如果一个数只有两个正因数,那么它就是…

#QT(QSpinBox,QDoubleSpinBox)

1.IDE:QTCreator 2.实验:实现一个计价工具,进制转换工具。 教程来自:阿西拜编程 QT C 5.9 3.记录 设置进制的第二种方法 ui->hex_tx->setDisplayIntegerBase(16); //设置显示进制为16进制 4.代码 widget.cpp #include "wi…

做一下笔记 CXDB5CCAM-MK 与 CXDBCCAM-ML 的区别

1. CXDB5CCAM-MK 的简介 2. CXDBCCAM-ML 的简介 3. 这个两个器件的区别 最基本可见的区别是 : 传输速度的不同。 4. 资料在资源里面

智能计算的基本原理——智能计算原理与实践【文末送书-36】

文章目录 智能计算的基本原理基本原理技术智能计算在实践中的应用 智能计算:原理与实践【文末送书-36】 随着科技的不断发展,智能计算成为引领时代的前沿技术之一。从传统的计算机模型到如今的人工智能系统,智能计算不仅深刻地改变着我们的生…

Python学习:首选开发环境VScode

Visual Studio Code 打开官网 https://code.visualstudio.com/,下载软件包,一步步安装即可。 我认为Visual Studio Code最好的Web前端开发工具。 Visual Studio Code是什么 Visual Studio Code (简称 VS Code) 是一款由 Microsoft 开发的轻量级、免费和…

深入探究:AVL树的平衡之道

文章目录 一、AVL树的原理AVL树的定义和特性平衡因子的概念 二、AVL树的自平衡策略a. 单旋(single rotation)1. 左单旋(Left Rotation):2. 右单旋(Right Rotation): b. 双旋&#xf…

低功耗DC-DC电压调整器IU5528D

IU5528D是一款超微小型,超低功耗,高效率,升降压一体DC-DC调整器。适用于双节,三节干电池或者单节锂电池的应用场景。可以有效的延长电池的使用时间。IU5528D由电流模PWM控制环路,误差放大器,比较器和功率开关等模块组成。该芯片可在较宽负载范围内高效稳…

自学软件测试真的能找到工作吗?“我“的测试之路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 自学软件测试当然…

【C++】C++学习前言

C前言与发展 一.什么是C二.C的发展史三.C的重要性 一.什么是C C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪…

猫生骨肉冻干价格合理区间是多少?真正性价比高的生骨肉冻干推荐

随着养猫知识的普及,生骨肉冻干喂养受到越来越多铲屎官的欢迎。然而,价格因素仍是部分铲屎官的阻碍。实际上,像我这样的资深铲屎官,早已认识到生骨肉冻干的价值。虽然生骨肉冻干的价格相对于烘焙粮和膨化粮要高一些,但…

前端之用HTML做一个汇款单

例子 代码 里面注释是我我对运用到的知识的理解 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>工商银行电子汇款单</title> </head> <body><h3>工商银行电子汇款单</…

面试题02.07.链表相交

方法一&#xff1a;暴力 public ListNode getIntersectionNode(ListNode headA, ListNode headB) {//先获得链表长度ListNode l1 headA;ListNode l2 headB;int m 0, n 0;while(l1 ! null){m;l1 l1.next;}while(l2 ! null){n;l2 l2.next;}ListNode l3 headA;for(int i …

什么是Redis的数据分片?

Redis的数据分片(sharding)是一种将一个Redis数据集分割成多个部分&#xff0c;分别存诸在不同的Redis节点上的技术。它可以用于将一个单独的Redis数据库扩展到多个物理机器上&#xff0c;从而提高Redis集群的性能和可扩展性 Redis数据分片的实现方式通常是将数据按照某种规则(…

独家直播!手机无人APP,让你跟上最新潮流

手机无人APP&#xff0c;是一款极具创新力和前瞻性的应用&#xff0c;旨在让用户随时随地跟上最新潮流。通过独家直播功能&#xff0c;用户可以第一时间了解世界各地的潮流资讯&#xff0c;与时俱进&#xff0c;展现出自己的个性和风采。 无人APP的直播功能实现了信息的即时传…

工业涂装行业的物联网解决方案

工业涂装行业的物联网解决方案 工业涂装行业在制造业中占据重要地位&#xff0c;其产品质量直接影响到最终产品的外观和性能。然而&#xff0c;传统涂装生产线容易出现质量问题&#xff0c;如色差、光泽度不均、橘皮现象等。为了解决这些问题&#xff0c;工业涂装行业需要寻求…

String 底层为什么使用 final 修饰?

1、典型回答 对于这个问题&#xff0c;Java之父詹姆斯 高斯林&#xff08;James Gosling&#xff09; 是这样回答的&#xff1a; I would use an immutable whenever I can 翻译为中文&#xff1a;只要允许&#xff0c;我就会使用不可变对象 而作为普通人的我们来说&#xff0…

算法---双指针练习-8(四数之和)

四数之和 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;四数之和 2. 讲解算法原理 首先对输入的数组进行排序&#xff0c;以便后续使用双指针法。初始化一个空的二维向量 ret&#xff0c;用于存储结果。对数组中的每个元素 nums[i] 进行遍历&#…

mysql主键和外键的区别

mysql主键和外键的区别 一、主键与外键存在的意义 主键和外键在关系数据库中扮演着至关重要的角色&#xff0c;它们共同维护着数据的完整性和一致性。 主键&#xff1a;它是每条记录的唯一标识符&#xff0c;犹如人的身份证号码&#xff0c;具有唯一性和非空性。例如&#x…

Linux基础命令[15]-less

文章目录 1. less 命令说明2. less 命令语法3. less 命令示例3.1 不加参数3.2 -N&#xff08;显示行号&#xff09;3.3 打开多个文件3.4 标记导航3.5 搜索内容 4. 总结 1. less 命令说明 less&#xff1a;用来分页查看文件&#xff0c;与 more 相比更加的灵活&#xff0c;并且…