From 6167f5ee243ad251fe45758674fc7096208f67fd Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 4 Sep 2023 16:08:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=AD=97=E4=BD=93?= =?UTF-8?q?=E6=96=B9=E6=A1=88=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0003_certificate_字体方案.py | 18 ++++++++++++++++++ server/apps/edu/models.py | 1 + server/apps/edu/services.py | 11 ++++++++--- 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 server/apps/edu/migrations/0003_certificate_字体方案.py diff --git a/server/apps/edu/migrations/0003_certificate_字体方案.py b/server/apps/edu/migrations/0003_certificate_字体方案.py new file mode 100644 index 0000000..8dcff6e --- /dev/null +++ b/server/apps/edu/migrations/0003_certificate_字体方案.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2023-09-04 08:08 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('edu', '0002_auto_20230823_1529'), + ] + + operations = [ + migrations.AddField( + model_name='certificate', + name='字体方案', + field=models.PositiveSmallIntegerField(default=1), + ), + ] diff --git a/server/apps/edu/models.py b/server/apps/edu/models.py index d943926..e8a21d0 100644 --- a/server/apps/edu/models.py +++ b/server/apps/edu/models.py @@ -17,3 +17,4 @@ class Certificate(CommonADModel): 是否需要集团证书 = models.BooleanField(default=False) 是否需要北京标研培训合格 = models.BooleanField(default=False) 证书地址 = models.CharField(max_length=100, null=True, blank=True) + 字体方案 = models.PositiveSmallIntegerField(default=1) diff --git a/server/apps/edu/services.py b/server/apps/edu/services.py index ff2b7e0..6c1da14 100644 --- a/server/apps/edu/services.py +++ b/server/apps/edu/services.py @@ -1,6 +1,11 @@ from PIL import ImageFont, ImageDraw, Image from django.conf import settings from apps.edu.models import Certificate +font_dict = { + 'font_1': "/media/cert/template/weibei.ttf", + 'font_2': "/media/cert/template/SIMLI.TTF" +} + def make_img_x(instance: Certificate): titles = [] @@ -12,15 +17,15 @@ def make_img_x(instance: Certificate): titles.append('质量负责人') if instance.是否最高管理者: titles.append('最高管理者') - instance.证书地址 = make_img(instance.证书编号, instance.姓名, '、'.join(titles)) + instance.证书地址 = make_img(instance.证书编号, instance.姓名, '、'.join(titles), font_dict[f'font_{instance.字体方案}']) instance.save() -def make_img(number, name, title): +def make_img(number, name, title, font_name_path): # 打开底版图片 imageFile = settings.BASE_DIR + '/media/cert/template/background.jpg' img = Image.open(imageFile) # 选择字体与大小 - font = ImageFont.truetype(settings.BASE_DIR+ "/media/cert/template/weibei.ttf", 155) + font = ImageFont.truetype(settings.BASE_DIR+ font_name_path, 155) font_title = ImageFont.truetype(settings.BASE_DIR + "/media/cert/template/siyuan.otf", 76) font_number = ImageFont.truetype(settings.BASE_DIR + "/media/cert/template/timesbd.ttf", 58) # print(font)