流程:
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,我嘗試選擇了其他字母名稱的字體,依然報錯,不知為何,所以個人對列印出來的學生名字字體有些許不滿意,請大佬幫忙解決!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/246561.html
標籤:python
上一篇:如何使用python or Shell 進行 整點的 自動任務監聽運行
下一篇:js逆向決議,js爬蟲
