Glemte å legge til pdf.py

This commit is contained in:
Trygve 2023-11-06 15:19:03 +01:00
parent 8621e07dcf
commit c4e2178c03
1 changed files with 19 additions and 10 deletions

View File

@ -1,22 +1,31 @@
import datetime
from fpdf import FPDF
def create_start_list(event, file_path):
def create_result_list(event, file_path, o_classes=[]):
results = event.get_result(o_classes)
pdf = FPDF()
pdf.add_page()
pdf.add_font("LiberationSans", fname="../../otime/data/fonts/LiberationSans-Regular.ttf")
pdf.set_font("LiberationSans", size=10)
line_height = pdf.font_size * 1.5
col_width = pdf.epw / 4 # distribute content evenly
for runner in event.runners:
pdf.multi_cell(col_width, line_height, runner.fullname(), border=1, ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(col_width, line_height, runner.o_class, border=1, ln=3, max_line_height=pdf.font_size)
pdf.multi_cell(col_width, line_height, str(runner.card_id), border=1, ln=3, max_line_height=pdf.font_size)
if runner.start_time is not None:
pdf.multi_cell(col_width, line_height, str(runner.start_time), border=1, ln=3, max_line_height=pdf.font_size)
else:
pdf.multi_cell(col_width, line_height, '', border=1, ln=3, max_line_height=pdf.font_size)
for class_result in results:
pdf.write(txt=class_result.name)
pdf.ln(line_height)
for runner in class_result.runner_results:
if runner.status == 'OK':
pdf.multi_cell(col_width, line_height, str(runner.place), border=1, ln=3, max_line_height=pdf.font_size, align='L')
else:
pdf.multi_cell(col_width, line_height, runner.status, border=1, ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(col_width, line_height, runner.fullname(), border=1, ln=3, max_line_height=pdf.font_size, align='L')
pdf.multi_cell(col_width, line_height, runner.club, border=1, ln=3, max_line_height=pdf.font_size)
if runner.status == 'OK':
pdf.multi_cell(col_width, line_height, str(datetime.timedelta(seconds = runner.total_time)), border=1, ln=3, max_line_height=pdf.font_size)
else:
pdf.multi_cell(col_width, line_height, '', border=1, ln=3, max_line_height=pdf.font_size)
pdf.ln(line_height)
pdf.output(file_path)
def create_all_invoices(self, filename_prefix):