2022-01-11 16:56:50 +08:00
|
|
|
|
import time
|
|
|
|
|
|
|
|
|
|
from reportlab.lib.units import cm, inch
|
|
|
|
|
from reportlab.lib.pagesizes import letter
|
|
|
|
|
from reportlab.pdfgen import canvas
|
|
|
|
|
|
|
|
|
|
from Certificate.scripts.path_tool import *
|
|
|
|
|
from Report.scripts.PdfStyle import *
|
|
|
|
|
Width, Height = letter
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CertificateGenerator:
|
|
|
|
|
|
|
|
|
|
def __init__(self, **kwargs):
|
|
|
|
|
# 文字数据
|
|
|
|
|
self.text_data = kwargs['text_data']
|
|
|
|
|
# 调用模板,在临时报告文件夹中创建指定名称的PDF文档
|
|
|
|
|
self.doc = canvas.Canvas(gen_pdf_path(name=kwargs['name']))
|
|
|
|
|
# 内容框
|
|
|
|
|
self.story = list()
|
|
|
|
|
|
|
|
|
|
def gen_cover(self):
|
2022-01-12 14:44:37 +08:00
|
|
|
|
self.doc.drawImage(get_pic_path(pic_name='certificate_02.jpg'), 0, 0, 600, 850)
|
2022-01-11 16:56:50 +08:00
|
|
|
|
|
|
|
|
|
def gen_text(self):
|
2022-01-12 14:44:37 +08:00
|
|
|
|
self.doc.setFont('SourceHanSerifCN-Bold', 20)
|
2022-01-24 15:05:31 +08:00
|
|
|
|
margin = (Width - len(self.text_data['企业名称']) * 19) / 2
|
|
|
|
|
self.doc.drawString(margin, 450, self.text_data['企业名称'])
|
2022-01-11 17:03:45 +08:00
|
|
|
|
self.doc.setFont('SIMSUN', 12, leading=5)
|
2022-01-11 16:56:50 +08:00
|
|
|
|
self.doc.drawString(2.8 * inch, 433, '统一社会信用代码:{}'.format(self.text_data['统一社会信用代码']))
|
2022-01-12 14:44:37 +08:00
|
|
|
|
self.doc.setFont('SourceHanSerifCN-Bold', 35)
|
2022-01-11 16:56:50 +08:00
|
|
|
|
self.doc.setFillColor('#B79249')
|
2022-01-12 14:44:37 +08:00
|
|
|
|
self.doc.drawString(3.2 * inch, 285, '{}级企业'.format(self.text_data['企业级别']))
|
2022-01-11 17:03:45 +08:00
|
|
|
|
self.doc.setFont('SIMSUN', 10)
|
2022-01-11 16:56:50 +08:00
|
|
|
|
self.doc.setFillColor('black')
|
|
|
|
|
self.doc.drawString(1.28 * inch, 260, '证书编号:{}'.format(self.text_data['证书编号']))
|
2022-01-11 17:03:45 +08:00
|
|
|
|
self.doc.setFont('SIMSUN', 10)
|
2022-01-11 16:56:50 +08:00
|
|
|
|
self.doc.drawString(4.6 * inch, 260, '有效日期:{}'.format(self.text_data['有效日期']))
|
|
|
|
|
|
|
|
|
|
def gen(self):
|
|
|
|
|
self.gen_cover()
|
|
|
|
|
self.gen_text()
|
|
|
|
|
self.doc.showPage()
|
|
|
|
|
self.doc.save()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
data = {
|
|
|
|
|
"企业名称": "远东资信评估有限公司",
|
|
|
|
|
"统一社会信用代码": "91310101132508092K",
|
2022-01-12 14:44:37 +08:00
|
|
|
|
"企业级别": "AA",
|
2022-01-24 15:05:31 +08:00
|
|
|
|
"证书编号": "CCRE012022012410045437",
|
2022-01-11 16:56:50 +08:00
|
|
|
|
"有效日期": "2022年1月1日至2023年1月1日",
|
|
|
|
|
}
|
|
|
|
|
file_name = '{}_{}'.format(data['企业名称'], int(time.time()))
|
|
|
|
|
c = CertificateGenerator(name=file_name, text_data=data)
|
|
|
|
|
c.gen()
|
|
|
|
|
|