使用Python-PIL创建证书

使用Python-PIL创建证书

如果你曾经做过为任何活动的参与者创建证书这样的事情,那么你就知道这是一个多么繁琐的过程。让我们用Python将其自动化吧。我们将使用Python的Pillow模块。要安装这个模块,只需在你的终端输入以下内容

pip install Pillow

你还需要将证书的设计做成图片格式(最好是png)。你可以使用像Microsoft Office Publisher这样的东西来创建证书并将其导出为png格式。保留一些额外的空间来输入名字。下面是我们将使用的证书模板。

Template Certificate:

使用Python-PIL创建证书

所以,我们的证书模板已经准备好了。现在,我们需要找到一种合适的字体来写上名字。你需要字体文件(TTF文件)的路径。如果你使用的是Windows 10,那么只要在windows搜索中搜索字体,就会显示字体设置的结果。到那里去,你应该看到类似于以下屏幕的东西。

使用Python-PIL创建证书

现在,从这里选择你喜欢的字体并点击它。你会看到一个通往该字体的路径。在某个地方记下这个路径。你将在你的代码中需要它。

以下是实现情况:

# 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)

输出:
使用Python-PIL创建证书

将这些名字添加到NAMES列表中。然后根据你的系统改变字体路径和证书模板的路径。然后运行上述代码,你的所有证书就应该准备好了。这是一个相当有效的解决方案,可以使为大量参与者创建证书的过程自动化。这对活动组织者来说可能是非常有效的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程