From 03b660bd03df3fdb624735d795d13e9f877cf566 Mon Sep 17 00:00:00 2001 From: Ankit-Upadhyay-73 <55012101+Ankit-Upadhyay-73@users.noreply.github.com> Date: Fri, 9 Apr 2021 15:22:21 +0530 Subject: [PATCH] Pillow Files These are files created for creating marksheet --- Marksheet.py | 135 +++++++++++++++++++++++++++++++++++++++++ MarksheetImage.py | 57 +++++++++++++++++ RefactoredMarksheet.py | 96 +++++++++++++++++++++++++++++ Success_Template.png | Bin 0 -> 76203 bytes TemplateSheet.py | 8 +++ 5 files changed, 296 insertions(+) create mode 100644 Marksheet.py create mode 100644 MarksheetImage.py create mode 100644 RefactoredMarksheet.py create mode 100644 Success_Template.png create mode 100644 TemplateSheet.py diff --git a/Marksheet.py b/Marksheet.py new file mode 100644 index 0000000..eda6d9a --- /dev/null +++ b/Marksheet.py @@ -0,0 +1,135 @@ +from PIL import Image,ImageFont +from PIL import ImageDraw +import json + + + +# conversion to JSON done by dumps() function + +marksheet_data = json.dumps({ + "id":1, + "name":"Ankit", + "email":"ankit@indigitalit.com", + "gender":"Male", + "finalresult":"Pass / Fail", + "CGPA":"A", + "message":"Can we do better", + "college":[ + { + "id":1, + "name":"Vidyavardhini's Annasaheb Vartak College", + "address":"Vasai Road (W), Dist. Palghar - 401202. Maharashtra, India", + "grade":"A", + "phone":250-2332017, + "email":"avct23_principal@rediffmail.com", + "logo_src":"/Users/surajlad/PHPPractice/PHPResources/vartak_logo.thumbnail", + "reportCardType":"Template 1", + "course":[ + { + "id":1, + "name":"BSC IT", + "duration":"6 Months", + "subject":[ + { + "id":1, + "name":"Java", + "passingMarks":40, + "outof":100, + "marks":65, + "grade":"A" + }, + { + "id":2, + "name":"C++", + "passingMarks":40, + "outof":100, + "marks":75, + "grade":"A" + }, + { + "id":3, + "name":"Phython", + "passingMarks":40, + "outof":100, + "marks":85, + "grade":"A" + } + ] + } + ] + } + ] +}) + +marksheet_data = json.loads(marksheet_data) + +fntheader = ImageFont.truetype("/Users/Surajlad/PHPPractice/PHPResources/SourceSerifPro-SemiBold.ttf",25) + +fntbold = ImageFont.truetype("/Users/Surajlad/PHPPractice/PHPResources/SourceSerifPro-SemiBold.ttf",18) + +fnt = ImageFont.truetype("/Users/Surajlad/PHPPractice/PHPResources/Verdana.ttf", 16) + +#marksheet_data = json.loads(input("Marksheeets Input")) + + +for colleges in marksheet_data["college"]: + + #result_layout created + image = Image.new('RGB',(1280,800),'#ffffff') + + #draw instance created + image_draw = ImageDraw.Draw(image) + + for college_data in colleges: + if college_data == "name": + image_draw.text((260,40),colleges[college_data],font = fntheader,fill="#303931") + + if college_data=="logo_src": + image.paste(Image.open(colleges[college_data]),(65,33)) + + if college_data =="grade": + image_draw.text((963,75),str("Grade:"+str(colleges[college_data])),font = fntbold,fill="#303931") + + if college_data == "address": + image_draw.text((290,75),colleges[college_data],font = fntbold,fill="#303931") + + if college_data == "phone": + image_draw.text((320,96),str("Phone:"+str(colleges["phone"])),font = fntbold,fill="#303931") + + if college_data == "email" : + image_draw.text((460,96),str("Email:"+str(colleges[college_data])),font = fntbold,fill="#303931") + + #for student + + image_draw.text((59,177),str("Student Name:"+str(marksheet_data["name"])),font = fntbold,fill="#303931") + + image_draw.text((61,225),str("Student ID:"+str(marksheet_data["id"])),font = fntbold,fill="#303931") + + image_draw.text((191,225),str("course:"+colleges["course"][0]["name"]),font = fntbold,fill="#303931") + + #for subject + #title-headers + + #to draw text in rectangle + image_draw.text((92,280),"Subject Id",font = fnt,fill="#303931") + image_draw.text((222,280),"Subject Name",font = fnt,fill="#303931") + image_draw.text((372,280),"Weightage",font = fnt,fill="#303931") + image_draw.text((522,280),"Passing",font = fnt,fill="#303931") + image_draw.text((672,280),"Obtained",font = fnt,fill="#303931") + + subject_x =92 + subject_y =290 + + + + for subjects in colleges["course"][0]["subject"]: + subject_y += 50 + subject_x =92 + for subject_data in subjects: + if subject_data == "id" or "name" or "outof" or "total": + image_draw.text((subject_x,subject_y),str(subjects[subject_data]),font = fnt,fill="#303931") + subject_x += 150 + image_draw.rectangle([61,270,1216,310],outline="#000000") + image_draw.line([(92,600),(1216,600)],fill="#303931") + + image.show() diff --git a/MarksheetImage.py b/MarksheetImage.py new file mode 100644 index 0000000..d46cd7d --- /dev/null +++ b/MarksheetImage.py @@ -0,0 +1,57 @@ +from PIL import Image,ImageFont,ImageDraw +import json + +class MarksheetImage(object): + + SourceSerif = ImageFont.truetype("/Users/Surajlad/PHPPractice/PHPResources/SourceSerifPro-SemiBold.ttf",25) + Verdana = ImageFont.truetype("/Users/Surajlad/PHPPractice/PHPResources/Verdana.ttf", 16) + + def __new__(cls,*args,**kwargs): + obj = super().__new__(cls) + return obj + + def __init__(self,Type="RGB",position=(1280,800),color="#000000"): + self.position = position + self.color = color + self.Type = Type + self.image = Image.new(Type,position,color) + + def draw(self,draw_type,position,content=None,structure=(3,3),style={"color":"#ffffff","font-family":Verdana,"text-size":18,"font-weight":None}): + self.draw = ImageDraw.Draw(self.image) + + if draw_type=="grid": + + x_start = position[0] + y_start = position[1] + x_end = position[2] + y_end = position[3] + + computed_y = y_end/structure[0] + computed_x = x_end/structure[1] + + for x in range(structure[0]): + self.draw.line(((x_start,computed_y),(x_end,computed_y)),fill="#ff0000") + computed_y += y_end/structure[0] + + + if draw_type=="line": + self.draw.line(position) + + if draw_type=="text": + self.draw.text(position,text = content,font = style.get("font-family"),color = style.get("color")) + + if draw_type=="image": + self.image.paste(Image.open(content),position) + + return self; + + def getMarksheet(self): + return self.image; + + + + + + + + diff --git a/RefactoredMarksheet.py b/RefactoredMarksheet.py new file mode 100644 index 0000000..5c0999e --- /dev/null +++ b/RefactoredMarksheet.py @@ -0,0 +1,96 @@ + +from MarksheetImage import MarksheetImage + +#drawing starts + +inputted_json = [ + { + "type": "text", + "value": "users.name", + "ideal": { + "x": 12, + "y": 12, + "rotation": 0, + "transform": 1.2 + }, + "style": { + "color": "#000000", + "background": null, + "fontFamily": "", + "fontSize": "", + "fontStyle": "italic|underline", + "fontWeight": 400 + } + }, + { + "type": "image", + "value": "college.logo", + "ideal": { + "x": 12, + "y": 12, + "rotation": 0, + "transform": 1.2 + }, + "style": { + "color": null, + "background": null, + "fontFamily": null, + "fontSize": null, + "fontStyle": null, + "fontWeight": null + } + }, + { + "type": "rectangle", + "value": "1px", + "ideal": { + "x": 12, + "y": 12, + "rotation": 0, + "transform": 1.2 + }, + "style": { + "color": "#ff0000", + "background": "#ffffff", + "fontFamily": null, + "fontSize": null, + "fontStyle": null, + "fontWeight": null + } + } +] + + +json_data = json.loads(json.dumps(inputted_json)) + + + + +marksheet = MarksheetImage().draw("grid",position = [61,270,1200,300],content = "College Name Here") +image = marksheet.getMarksheet() +image.show() + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Success_Template.png b/Success_Template.png new file mode 100644 index 0000000000000000000000000000000000000000..e10bf0b355ba9ae2067b6c8560bc641ca23b134d GIT binary patch literal 76203 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 z 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 literal 0 HcmV?d00001 diff --git a/TemplateSheet.py b/TemplateSheet.py new file mode 100644 index 0000000..9db049a --- /dev/null +++ b/TemplateSheet.py @@ -0,0 +1,8 @@ +import sys +sys.path.append(".") +from MarksheetImage import MarksheetImage + +marksheet = MarksheetImage() + +image = marksheet.draw("text",position = (260,40),content ="College Name is Set",style={"color":"#303931"}).get() +image.show()