艺术组长提出需求:请给word模板文件批量“添加电子公章(png图片)

解压文件后,发现:
1、每份WORD文件名是一位老师的证书,需要打开每一份word,插入一个空白电子公章png。
2、每个word文件名包含教师的名字。

1、原作者已经辛辛苦苦一个一个Word添加了获奖名字。
这是同事自己设计的word证书模板,应该是她一个个把名字复制黏贴的(每个word里面已经有名字了)。
2、预设是手动反复黏贴png图片。
按同事的需求,我需要打开无数个WORD,然后将电子公章复制并拖动到指定位置,然后保存。但是手工反复黏贴图片,容易出现某一份遗漏、而且手动贴公章pngt图片的位置会不同
3、运用python 批量读取EXCEL信息并写入Word模板。
因为前期做过“大班毕业证书”打印的py程序,所以我觉得最好的方法是“先做一个带公章的word模板+{{name}}”,然后批量生成,而不是一个个插入图片(其实也有程序可以在批量word的指定位置插入图片)
1、用天若OCR,识别教师姓名

2、复制到EXCEL,分栏,只提取名字,原模板中教师两个名字,中间需要空格,手动按空格。

3、docx模板制作


-
- # -*- coding:utf-8 -*- 1
- '''
- 目的:教师获奖证书
- 作者:阿夏
- 日期:2023年9月6日 13:38
- '''
-
-
- # 一、导入相关模块,设定excel所在文件夹和生成word保存的文件夹
- from docxtpl import DocxTemplate
- import pandas as pd
- import os
- import time
- #
-
-
- zpath=os.getcwd()+'\\'
- zpath=r'C:\Users\jg2yXRZ\OneDrive\桌面\第一届七彩天空奖证(批量公章)'+'\\'
-
- file_path=zpath+r'\零时Word'
-
- # 二、遍历excel,逐个生成word(form.docx是前面的模板)
- try:
- os.mkdir(file_path)
- except:
- pass
-
- tpl = DocxTemplate(zpath+'第一届七彩天空教师专业赋能大赛奖状(模板).docx')
- IDcard = pd.read_excel(zpath+'获奖名单.xlsx')
-
- nu=IDcard["nu"]
- name = IDcard["name"]
- reward=IDcard["reward"] # str.rstrip()用于去掉换行符
-
-
- # math = autho['math']
- # eng = autho['eng']
-
- # 遍历excel行,逐个生成
- num = IDcard.shape[0]
- for i in range(num):
- context = {
- "nu": nu[i],
- "name": name[i],
- "reward": reward[i],
-
- }
- tpl = DocxTemplate(zpath+'第一届七彩天空教师专业赋能大赛奖状(模板).docx')
- tpl.render(context)
- # tpl.save(file_path+r"\{} 的身份证.docx".format(name[i]))
- #
- tpl.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\第一届七彩天空奖证(批量公章)\零时Word\{}_{}_第一届七彩天空教师专业赋能大赛奖状_({}).docx".format('%02d'%nu[i],reward[i],name[i]))
-
- # from docx2pdf import convert
-
- # # docx 文件另存为PDF文件
- # inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\第一届七彩天空奖证'册/零时Word/{}_第一届七彩天空教师专业赋能大赛奖状_({}).docx".format('%02d'%nu[i],name[i]) # 要转换的文件:已存在
-
-
- # # print('----------第5步:删除临时文件夹------------')
- # import shutil
- # shutil.rmtree('D:/test/03办公类/11毕业册/零时Word') #递归删除文件夹,即:删除非空文件夹
-
-
-
-
-
-
-

直接运行,不用输入参数(不显示任何运行过程)






在忙的要死的阶段里,我是多么迫切希望尽可能减少消耗性重复劳动,获取时间,去做更有价值的事情。