您现在的位置是:首页 >其他 >使用python实现批量制作带照片的工作证。网站首页其他

使用python实现批量制作带照片的工作证。

懿寒 2023-07-14 16:00:02
简介使用python实现批量制作带照片的工作证。

预设:这个程序假设照片文件名为身份证号,文件格式为.jpg,并且员工信息表格中的列名需要与代码中使用的相同(即身份证号姓名部门职务)。如果有需要,可以根据实际情况进行修改。

前提:需要使用到第三方库 Pillow,您需要先安装它。您可以在命令行中使用以下命令安装 Pillow:       pip install Pillow

程序原理:

1读取Excel表格中的数据:程序首先会读取Excel表格中的数据,包括身份证号、姓名、部门、职务等信息,并将其存储在一个字典中,以便后续根据身份证号来生成工作证的文件名和证件照。

2.读取证件照和公司logo,程序会从指定的文件夹中读取所有证件照和公司logo,并将它们存储在一个列表中,以便后续在生成工作证时添加照片和logo。

3.遍历所有数据并生成工作证:程序会遍历Excel表格中的所有数据,并根据身份证号生成对

 

实现步骤如下:

  1. 使用openpyxl库读取Excel表格中的数据,并将其存储在一个字典中。

  2. 使用Pillow库读取指定文件夹中的证件照和公司logo,并将它们存储在一个列表中。

  3. 遍历Excel表格中的所有数据,根据身份证号生成对应的工作证文件名。

  4. 使用Pillow库在工作证上添加身份证号、姓名、部门、职务等信息。

  5. 使用Pillow库将公司logo和证件照添加到工作证中。

  6. 使用Pillow库将生成的工作证保存到指定的文件夹中。

import os
import csv
from PIL import Image, ImageDraw, ImageFont

# 读取csv文件中的信息
with open('info.csv', 'r', encoding='utf-8-sig') as f:
    reader = csv.DictReader(f)
    info_list = []
    for row in reader:
        info_list.append(row)

# 遍历信息列表,生成工作证
font_path = 'font.ttf'
logo_path = 'logo.png'
for info in info_list:
    # 加载照片
    photo_path = os.path.join('photos', info['身份证号'] + '.jpg')
    if os.path.exists(photo_path):
        photo = Image.open(photo_path)
    else:
        continue

    # 创建工作证背景
    card = Image.new('RGB', (640, 400), (255, 255, 255))

    # 添加部门和姓名
    draw = ImageDraw.Draw(card)
    font = ImageFont.truetype(font_path, 30)
    draw.text((100, 80), info['部门'], fill=(0, 0, 0), font=font)
    draw.text((100, 150), info['姓名'], fill=(0, 0, 0), font=font)

    # 添加职务
    font = ImageFont.truetype(font_path, 24)
    draw.text((100, 220), info['职务'], fill=(0, 0, 0), font=font)

    # 添加照片和logo
    card.paste(photo, (20, 20))
    logo = Image.open(logo_path)
    card.paste(logo, (520, 300))

    # 保存工作证
    card.save(f"{info['姓名']}的工作证.jpg")

总体来说,这个程序的原理是通过读取Excel表格和文件夹中的数据,然后利用Pillow库生成工作证并添加照片和logo。这个程序的处理逻辑是将不同来源的数据整合在一起,然后根据数据之间的关系生成目标文件。

其他的应用场景:带照片的录取通知书,带照片的毕业证,

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。