使用Python-PIL创建证书
如果你曾经做过为任何活动的参与者创建证书这样的事情,那么你就知道这是一个多么繁琐的过程。让我们用Python将其自动化吧。我们将使用Python的Pillow模块。要安装这个模块,只需在你的终端输入以下内容
pip install Pillow
你还需要将证书的设计做成图片格式(最好是png)。你可以使用像Microsoft Office Publisher这样的东西来创建证书并将其导出为png格式。保留一些额外的空间来输入名字。下面是我们将使用的证书模板。
Template Certificate:
所以,我们的证书模板已经准备好了。现在,我们需要找到一种合适的字体来写上名字。你需要字体文件(TTF文件)的路径。如果你使用的是Windows 10,那么只要在windows搜索中搜索字体,就会显示字体设置的结果。到那里去,你应该看到类似于以下屏幕的东西。
现在,从这里选择你喜欢的字体并点击它。你会看到一个通往该字体的路径。在某个地方记下这个路径。你将在你的代码中需要它。
以下是实现情况:
# imports
from PIL import Image, ImageDraw, ImageFont
def coupons(names: list, certificate: str, font_path: str):
for name in names:
# adjust the position according to
# your sample
text_y_position = 900
# opens the image
img = Image.open(certificate, mode ='r')
# gets the image width
image_width = img.width
# gets the image height
image_height = img.height
# creates a drawing canvas overlay
# on top of the image
draw = ImageDraw.Draw(img)
# gets the font object from the
# font file (TTF)
font = ImageFont.truetype(
font_path,
200 # change this according to your needs
)
# fetches the text width for
# calculations later on
text_width, _ = draw.textsize(name, font = font)
draw.text(
(
# this calculation is done
# to centre the image
(image_width - text_width) / 2,
text_y_position
),
name,
font = font )
# saves the image in png format
img.save("{}.png".format(name))
# Driver Code
if __name__ == "__main__":
# some example of names
NAMES = ['Frank Muller',
'Mathew Frankfurt',
'Cristopher Greman',
'Natelie Wemberg',
'John Ken']
# path to font
FONT = "/path / to / font / ITCEDSCR.ttf"
# path to sample certificate
CERTIFICATE = "path / to / Certificate.png"
coupons(NAMES, CERTIFICATE, FONT)
输出:
将这些名字添加到NAMES列表中。然后根据你的系统改变字体路径和证书模板的路径。然后运行上述代码,你的所有证书就应该准备好了。这是一个相当有效的解决方案,可以使为大量参与者创建证书的过程自动化。这对活动组织者来说可能是非常有效的。