64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
import openpyxl
|
|
from reportlab.pdfgen import canvas
|
|
from reportlab.pdfbase import pdfmetrics
|
|
from reportlab.pdfbase.pdfmetrics import stringWidth
|
|
from reportlab.pdfbase.ttfonts import TTFont
|
|
import os
|
|
from PyPDF2 import PdfFileReader, PdfFileMerger
|
|
|
|
pdfmetrics.registerFont(TTFont('Arial', 'Arial.ttf'))
|
|
wb = openpyxl.load_workbook('Excel_Export Stand(31.08).xlsx')
|
|
sheet = wb.get_sheet_by_name("01-08")
|
|
|
|
# print(sheet.cell(2,2).value)
|
|
|
|
page_width = 2156
|
|
page_height = 3050
|
|
start = 200
|
|
start_2 = 700
|
|
spread = 80
|
|
categories = ["Roll Number: ", "Name: ", "Gender: ", "Age: ", "Board: ", "City: ", "Email: "]
|
|
|
|
university = "NED University Of Engineering And Technology"
|
|
|
|
|
|
def create_data():
|
|
for i in range(2, 14):
|
|
std_id = sheet.cell(row=i, column=1).value
|
|
std_name = sheet.cell(row=i, column=2).value
|
|
std_gender = sheet.cell(row=i, column=3).value
|
|
std_age = sheet.cell(row=i, column=4).value
|
|
std_board = sheet.cell(row=i, column=5).value
|
|
std_city = sheet.cell(row=i, column=6).value
|
|
std_email = sheet.cell(row=i, column=8).value
|
|
|
|
data = [std_id, std_name, std_gender, std_age, std_board, std_city, std_email]
|
|
|
|
c = canvas.Canvas(str(std_name) + '.pdf')
|
|
c.setPageSize((page_width, page_height))
|
|
c.setFont('Arial', 80)
|
|
text_width = stringWidth(university, 'Arial', 80)
|
|
c.drawString((page_width - text_width) / 2, 2900, university)
|
|
|
|
y = 2500
|
|
|
|
for x in range(0, 7):
|
|
c.setFont('Arial', 40)
|
|
c.drawString(start, y, categories[x])
|
|
c.drawString(start_2, y, str(data[x]))
|
|
y -= spread
|
|
|
|
c.save()
|
|
|
|
|
|
def merge_data():
|
|
files_dir = 'pytopdf'
|
|
pdf_files = [f for f in os.listdir(files_dir) if f.endswith('.pdf')]
|
|
merger = PdfFileMerger()
|
|
for filename in pdf_files:
|
|
merger.append(PdfFileReader(os.path.join(files_dir, filename, 'rb')))
|
|
merger.write(os.path.join(files_dir, 'merged_data.pdf'))
|
|
|
|
|
|
create_data()
|
|
merge_data() |