用Python【批量】生产【电子奖状】的方法请查收!
生活随笔
收集整理的这篇文章主要介绍了
用Python【批量】生产【电子奖状】的方法请查收!
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
流程:
1.用PS设计好荣誉证书模板,在姓名处留白
2.批量生产
一、用PS设计好荣誉证书模板
二、批量生产
1.准备工作
将需要奖励的学生名单放在txt文档中;将荣誉证书模板、学生名单、.py程序放在同一个文件夹里。
2.批量生产
''' 批量生产电子奖状 ''' from docx.shared import Pt, RGBColor from PIL import Image,ImageDraw,ImageFont old_img = Image.open(r"荣誉证书模板.png")#导入证书模板 draw = ImageDraw.Draw(old_img) # 设置图片文字,字体,大小,颜色 newfont=ImageFont.truetype('c:Users/86136/AppData/Local/Microsoft/Windows/Fonts/HGH_CNKI.TTF',120) newcolor = RGBColor(175,137,84) #通过RGB设置学生名字的颜色with open("student.txt", "r",encoding = 'utf-8') as f: #循环制造for line in f.readlines():line = line.strip('\n') #去掉列表中每一个元素的换行符old_img = Image.open(r"荣誉证书模板.png")draw = ImageDraw.Draw(old_img)# 设置图片文字,字体类型,以及字体大小,颜色newfont=ImageFont.truetype('c:Users/86136/AppData/Local/Microsoft/Windows/Fonts/HGH_CNKI.TTF',120)draw.text((850,750),line,font=newfont,fill = newcolor)save_adress = str(line) + '.png' old_img.save(save_adress)print(line + "荣誉证书制作完成")三、成果展示
四、制作过程中的报错经验
1.报错UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa2 in position 30: illega
解决:读取txt时,添加encoding = ‘utf-8’,且txt命名方式只能为英文字母不能为中文。
2.生成的奖状不能保存为.JPG而要保存为.PNG,因为JPG好像不支持RGB的颜色,只能用“black”、“red”这种内置颜色,所以打印不出来,而PNG格式可以。
3.疑问:本程序打印学生名字使用的字体为HGH_CNKI.TTF,但这个字体不太好看,想换,但其他很多字体打印出来就会报错为ascii‘ codec can‘t decode byte 0xe6。我尝试选择了其他字母名称的字体,依然报错,不知为何,所以个人对打印出来的学生名字字体有些许不满意。请大佬帮忙解决!
总结
以上是生活随笔为你收集整理的用Python【批量】生产【电子奖状】的方法请查收!的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: java 坦克大战设计论文,java坦克
- 下一篇: python实现3d建模工具_Pytho