
【办公类-38-01】20240305 班级微信优质指导交流(word单元格插入统一大小的微信截图,用文字替换方式修改基本信息)_word打印微信聊天截图图片大小-优快云博客文章浏览阅读1.7k次,点赞50次,收藏18次。本文讲述了如何使用Python脚本在Word文档中自动化插入微信截图,并解决图片位置调整和边框问题,同时实现班级、班主任和时间等基础信息的自动替换,提升工作效率。
https://blog.youkuaiyun.com/reasonsummer/article/details/136487303?spm=1011.2415.3001.5331

首先用手机截图,8张关于家园指导的内容,发送到文件传输助手

把下载微信图片的代码优化一下,
改进:下载微信截图照片时,VScode界面自动最小化
'''
Python模拟鼠标下载微信的照片(存在问题,不能停止,只能默认下载50张,删除多余)
星火讯飞,阿夏
20250415
'''
import os,time
import pyautogui
import pyperclip
import re
import win32api
import win32con
import time
import pygetwindow as gw
# 获取当前活动窗口。把P测试测试01
current_window = gw.getActiveWindow()
if current_window:
current_window.minimize()
else:
print("未找到活动窗口")
time.sleep(2)
# 先打开微信
# 读取文件名称和路径
path=r'C:\Users\jg2yXRZ\OneDrive\桌面\下载照片'
os.makedirs(path,exist_ok=True)
# 先点开第一张
# 预设照片数量
num=20
for i in range(num):
# 打开第一图
# 移动鼠标到指定位置并右击
pyautogui.moveTo(934, 508)
pyautogui.click(button='right')
time.sleep(1)
pyautogui.moveTo(982,554)
pyautogui.click()
time.sleep(2)
# 输入图片名称,复制中文内容到剪贴板
name=path+fr'\{i:03}'
pyperclip.copy(name)
# 黏贴图片地址
pyautogui.hotkey('ctrl', 'v')
time.sleep(2)
pyautogui.press('enter')
# # 图片显示需要时间
time.sleep(2)
# 模拟按键“右箭头”
pyautogui.press('right')
time.sleep(2)
# 'left'(左箭头)
# 'up'(上箭头)
# 'down'(下箭头)
# 获取当前活动窗口。把P测试测试01
current_window = gw.getActiveWindow()
if current_window:
current_window.minimize()
else:
print("未找到活动窗口")
time.sleep(2)
默认下载20张,实际只有8张需要
把下载的照片放到截图文件夹里

WORD模版:透明线框

这是自动插入8张图片的代码
每年把班级、老师、日期修改一下

代码展示
'''
微信优质家教指导(一页)自动插入8张截图、替换班级、教师名字、时间
作者:阿夏
时间:2024年3月4日
20250616改
'''
from docx import Document
from docx.shared import Inches,Cm
from PIL import Image
import os
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
# 班级、教师、时间的文字替换
original=['X','Y','A','B','T']
new=['中','2','X老师','Z老师','2025.6.30']
# 打开Word文档
path=r'C:\Users\jg2yXRZ\OneDrive\桌面\中X班微信优质指导交流'
doc = Document(path+r'\中X班微信优质指导交流.docx')
# 获取jpg文件夹中的所有图片文件
image_folder = path+r'\截图'
image_files = os.listdir(image_folder)
# 遍历每个表格单元格和对应的图片文件
# 遍历每个表格单元格和对应的图片文件
table = doc.tables[0] # 假设要操作的表格是第一个表格
cell_index = 0
for row in table.rows:
for cell in row.cells:
if cell_index >= len(image_files):
break
# 打开并调整图片大小
image_file = os.path.join(image_folder, image_files[cell_index])
image = Image.open(image_file)
image.thumbnail(( Cm(6),Cm(10.5))) # 调整图片大小为4x4厘米
# image.thumbnail((Inches(2), Inches(2))) # 调整图片大小为2x2英寸
# 清空单元格中的段落
for paragraph in cell.paragraphs:
cell._element.remove(paragraph._element)
# 清空单元格中的内容
for paragraph in cell.paragraphs:
for run in paragraph.runs:
run.text = ""
# 将图片插入到单元格中
# cell.add_paragraph().add_run().add_picture(image_file, width=Inches(2), height=Inches(2))
# cell.add_paragraph().add_run().add_picture(image_file, width=Cm(6),height=Cm(11.7))
# 插入图片到单元格中 并居中
paragraph = cell.add_paragraph()
paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
run = paragraph.add_run()
run.add_picture(image_file, width=Cm(6), height=Cm(10.5))
cell_index += 1
# # 保存修改后的Word文档
# doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\中X班微信优质指导交流\中4班微信优质指导交流(插图).docx')
# 遍历所有段落
for i in range(len(original)):
for paragraph in doc.paragraphs:
# 遍历段落中的每个运行对象
for run in paragraph.runs:
# 替换运行对象中的文本
a="{}".format(original[i])
b="{}".format(new[i])
if "{}".format(a) in run.text:
new_text = run.text.replace("{}".format(a) ,"{}".format(b))
# 清空原有运行对象的内容
run.text = ""
# 添加替换后的文本,并保留原有格式
new_run = run
new_run.text = new_text
# 保存修改后的Word文档
doc.save(path+fr'\{new[0]}{new[1]}班微信优质指导交流({new[4]}).docx')

WORD打开,有线框

打印预览

打印出来

5秒生成,绝对比一张张手动插入图片,然后调整图片大小、调整位置来的方便。