Crear certificados usando Python-PIL

Prerrequisitos: Python: Pillow (una bifurcación de PIL)

Bueno, si alguna vez ha hecho algo como crear certificados para los participantes de cualquier evento, entonces sabe lo tedioso que es el proceso. Automaticemos eso usando Python. Usaremos el módulo Pillow de Python. Para instalar eso simplemente escriba lo siguiente en su terminal

pip install Pillow

También necesita el diseño del certificado en formato de imagen (preferiblemente png). Puede usar algo como Microsoft Office Publisher para crear los certificados y exportarlos como png. Mantenga algo de espacio adicional para ingresar el nombre. A continuación se muestra la plantilla de certificado que utilizaremos.

Certificado de plantilla:

Sample Certificate

Entonces, nuestra plantilla de certificado está lista. Ahora, necesitamos encontrar una fuente adecuada para escribir el nombre en ella. Necesita la ruta al archivo de fuente (archivo TTF). Si está utilizando Windows 10, simplemente busque Fuentes en la búsqueda de Windows, le mostrará los resultados de la configuración de Fuentes. Dirígete hacia allí y deberías ver algo similar a la siguiente pantalla.

Fonts settings

Ahora, elige la fuente que te gusta de aquí y haz clic en ella. Verá una ruta a esa fuente. Anote el camino en alguna parte. Lo necesitarás en tu código.

A continuación se muestra la implementación.

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

Producción:
Final Certificate result

Agregue los nombres a la lista de NOMBRES . Luego, cambie la ruta de la fuente y la ruta a la plantilla del certificado de acuerdo con su sistema. Luego ejecute el código anterior y todos sus certificados deberían estar listos. Esta es una solución bastante efectiva para automatizar el proceso de creación de certificados para una gran cantidad de participantes. Esto puede ser muy efectivo para los organizadores de eventos.

Publicación traducida automáticamente

Artículo escrito por debdutgoswami y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *