您现在的位置是:首页 >其他 >使用python实现批量制作带照片的工作证。网站首页其他
使用python实现批量制作带照片的工作证。
简介使用python实现批量制作带照片的工作证。
预设:这个程序假设照片文件名为身份证号,文件格式为.jpg
,并且员工信息表格中的列名需要与代码中使用的相同(即身份证号
、姓名
、部门
、职务
)。如果有需要,可以根据实际情况进行修改。
前提:需要使用到第三方库 Pillow,您需要先安装它。您可以在命令行中使用以下命令安装 Pillow: pip install Pillow
程序原理:
1读取Excel表格中的数据:程序首先会读取Excel表格中的数据,包括身份证号、姓名、部门、职务等信息,并将其存储在一个字典中,以便后续根据身份证号来生成工作证的文件名和证件照。
2.读取证件照和公司logo,程序会从指定的文件夹中读取所有证件照和公司logo,并将它们存储在一个列表中,以便后续在生成工作证时添加照片和logo。
3.遍历所有数据并生成工作证:程序会遍历Excel表格中的所有数据,并根据身份证号生成对
实现步骤如下:
-
使用openpyxl库读取Excel表格中的数据,并将其存储在一个字典中。
-
使用Pillow库读取指定文件夹中的证件照和公司logo,并将它们存储在一个列表中。
-
遍历Excel表格中的所有数据,根据身份证号生成对应的工作证文件名。
-
使用Pillow库在工作证上添加身份证号、姓名、部门、职务等信息。
-
使用Pillow库将公司logo和证件照添加到工作证中。
-
使用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。这个程序的处理逻辑是将不同来源的数据整合在一起,然后根据数据之间的关系生成目标文件。
其他的应用场景:带照片的录取通知书,带照片的毕业证,
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。