【AI编程实践】(一)通用证书生成器
单位工作需要,经常办一些中小学生参加的评奖活动,有些大型活动甚至数万人参与,后续奖项证书往往需要打印和在线查询、下载。以往有些证书的批量打印采取了Word的邮件合并功能,但是这种方法也有几个问题:一个是排版比较死板,美观度不够;二是不能灵活地根据字数长短来调节字号;三是数据量大时生成速度比较慢,而且易用度不高,不太容易上手。也找到一些其他的方案,比如canva的批量导入表格制图功能,多少还是会有一
背景
单位工作需要,经常办一些中小学生参加的评奖活动,有些大型活动甚至数万人参与,后续奖项证书往往需要打印和在线查询、下载。
以往有些证书的批量打印采取了Word的邮件合并功能,但是这种方法也有几个问题:一个是排版比较死板,美观度不够;二是不能灵活地根据字数长短来调节字号;三是数据量大时生成速度比较慢,而且易用度不高,不太容易上手。
也找到一些其他的方案,比如canva的批量导入表格制图功能,多少还是会有一些需求不能满足……
自从发现AI编程能力很强以后,就一直想用AI来搓一个通用证书生成器,来解决实际使用时遇到的各种证书生成问题。
需求拆解
一般来说,我们手头会有一张设计好的证书模板(空出了需要填写的可变字段)、一份获奖信息表单(包含各种需要填写在对应位置的字段数据)。
我们需要的是:
- 读取证书模版;
- 读取获奖信息表单和字段;
- 在证书模板上框选需要填写数据的区域,指定对应的表单字段;
- 设置字段数据的显示样式(如字体、字号、颜色、居中还是居左居右);
- 设置多个区域和字段;
- 预览排版效果;
- 批量导出。
以上大概就是一个基本的证书生成器的框架,将上述的需求描述发送给AI,就可以开搓啦!
工具
Cursor、Trae、DeepSeek
AI编程中,我最常用的工具就是以上三个,Cursor和Trae都有应用构建模式,可以直接在项目中创建和修改所需的文件夹和文件,可以直接在终端安装项目运行所需的依赖;问题呢,是Cursor对网络有一定的要求,经常失去响应,应该也有对频次和用量的限制,但我可能用得少没什么感知;Trae对用量的限制更明显一些,还没做过几个项目呢,就各种提示让付费升级到pro;DeepSeek呢,虽然不能直接与本机互动,但是往往第一版给出的代码可用性就挺高。
所以我也是经常切换着用,用DeepSeek出第一版方案,然后Cursor和Trae轮流干活,一个挂了就换另一个顶班😁
不管怎么样,我本人在这中间是一行代码都不会碰的,毕竟我纯小白,看不懂也不会改哈😂
实践
根据DeepSeek的分析和设计,最终这个项目采用的方案是:
通过Python的Tkinter库构建一个图形用户界面(GUI),使用Pillow(PIL)来处理图片,使用pandas来处理表单数据(如Excel或CSV)。
给出的第一版代码就成功运行了:
当然,在读取证书和表格之后,代码就陆续开始报错了,并没能一次性满足所有需求,这也是肯定的,从初始版到最后可用版本,中间修改了几十次,而且还陆续增加了不少功能:
- 保存各个字段区域的参数信息,并且可以选择修改;
- 鼠标选择已设定区域,并且通过方向键微调位置;
- 通过组合字段和固定文字,设定证书主体内容;
- 预览证书增加按照表格逐一浏览和检查每一张证书;
- 文本区域除了预设基础字号以外,还可以根据字段的长度自动缩减字号以适应当前区域;
- 保存本次证书的设置方案,以便下一次导入;
- 根据表单字段,设定导出证书的文件命名方式;
- 设定导出证书时可以按照指定的字段来区分存储的文件夹;
- 增加多线程生成证书机制及生成进度条展示;
- 增加报错信息(如表格中有空行或哪一张证书没有生成成功)。
最后的成品(目前已基本可用,后续看情况要不要再增加新的功能点):
不管证书横版还是竖版,什么尺寸大小,都可以通用。
鼠标框选区域,设定该字段显示样式,添加区域后就可以直接预览了。
实测一分钟可生成600张证书,比邮件合并要快不少呢……
总之,AI编程真是太好用啦!
更多推荐
所有评论(0)