html_and_vue/全员营销奖励.py

77 lines
3.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import textwrap
from PIL import Image, ImageDraw, ImageFont
import pandas as pd
def add_text(text_item):
for key, value in text_item.items():
i = 1
for text in value:
if type(text[0]) == str:
image = Image.open(r'D:\cori\员工奖励bg1.png')
draw = ImageDraw.Draw(image)
font_path_title = r'D:\onedrive\Documents\WeChat Files\fumeng0108\FileStorage\File\2020-05\思源黑体7款\思源黑体7款\SourceHanSansCN-Bold.otf'
font_path_content = r'D:\onedrive\Documents\WeChat Files\fumeng0108\FileStorage\File\2020-05\思源黑体7款\思源黑体7款\SourceHanSansCN-Regular.otf'
font_size_title = 36
font_size_content = 25
font_title = ImageFont.truetype(font_path_title, font_size_title)
font_content = ImageFont.truetype(font_path_content, font_size_content)
i += 1
# print(text)
# print(text[0])
# print(text[1])
# print(text[2])
# print(text[3])
# print(text[4])
# print(text[5])
save_name = key + text[0] + str(i) + '.png'
print(save_name)
# 获取文本大小
text_width1, text_height1 = draw.textsize(text[0], font_title)
text_width2, text_height2 = draw.textsize(text[1], font_content)
text_width3, text_height3 = draw.textsize(text[2], font_content)
text_width4, text_height4 = draw.textsize(str(text[3]), font_content)
text_width5, text_height5 = draw.textsize(str(text[4]), font_content)
# 计算文本的位置使其居中
image_width, a = image.size
text_x1 = (image_width - text_width1) / 2
text_x2 = (image_width - text_width2) / 2
text_x3 = (image_width - text_width3) / 2
text_x4 = (image_width - text_width4) / 2
text_x5 = (image_width - text_width5) / 2
# 在图片上添加文本
draw.text((text_x1, 19), text[0], font=font_title, fill="#AA1017")
draw.text((text_x2, 186), text[1], font=font_content, fill="#FAC79B")
draw.text((text_x3, 346), text[2], font=font_content, fill="#FAC79B")
draw.text((text_x4, 505), str(text[3]), font=font_content, fill="#FAC79B")
draw.text((text_x5, 664), str(text[4]), font=font_content, fill="#FAC79B")
# text_width = 22
# wrapped_text = textwrap.wrap(text[5], width=text_width)
# pos = (36, 868)
# leading = 42
# for i, line in enumerate(wrapped_text):
# draw.text((pos[0], leading * i + pos[1]), line, font=font_content, fill="#FAC79B")
# 保存修改后的图片
image.save(r"D:\cori\员工营销" + "/" + save_name)
def get_data(file_path):
# 读取Excel文件
excel_data = pd.read_excel(file_path, sheet_name=None)
# 将每个sheet的数据转换成字典
data_dict = {}
for sheet_name, sheet_data in excel_data.items():
data_dict[sheet_name] = sheet_data.values.tolist()
return data_dict
# print(data_dict['全员'][0])
file_path = r'D:\cori\2024年全员营销奖励一张表 - 营销助手展示-拆分.xlsx'
text_item = get_data(file_path)
add_text(text_item, )