forked from Trygve/otime
La til pdf eksport for startliste
This commit is contained in:
parent
2b22bcb7e1
commit
06dae8b35b
9
dev.py
9
dev.py
@ -7,9 +7,10 @@ from rich.table import Table
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
event = otime.event(0, 'supercup')
|
event = otime.event(0, 'supercup')
|
||||||
event.import_ttime_cnf('sc_2021_ttime/ttime.cnf.txt')
|
event.import_ttime_cnf('k2ds/tt.cnf')
|
||||||
event.import_ttime_db('sc_2021_ttime/db_eventor.csv')
|
event.import_ttime_db('k2ds/db.csv')
|
||||||
event.import_mtr_file('sc_2021_ttime/mtr.csv')
|
event.import_mtr_file('k2ds/mtr.txt')
|
||||||
#card_punches = otime.card_punch.list_from_mtr_f('sc_2021_ttime/mtr.csv')
|
#card_punches = otime.card_punch.list_from_mtr_f('sc_2021_ttime/mtr.csv')
|
||||||
event.match_runners_cards()
|
event.match_runners_cards()
|
||||||
event.get_xml_res().write('Resultater.xml')
|
event.create_start_list_pdf('starttimes.pdf')
|
||||||
|
#event.get_xml_res().write('Resultater.xml')
|
||||||
|
20
otime.py
20
otime.py
@ -3,6 +3,7 @@ import datetime
|
|||||||
import csv
|
import csv
|
||||||
import re
|
import re
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
|
from fpdf import FPDF
|
||||||
|
|
||||||
class event:
|
class event:
|
||||||
def __init__(self, eventid, name, **kwargs):
|
def __init__(self, eventid, name, **kwargs):
|
||||||
@ -127,6 +128,25 @@ class event:
|
|||||||
#</Class>
|
#</Class>
|
||||||
ET.indent(root, space=' ', level=0)
|
ET.indent(root, space=' ', level=0)
|
||||||
return tree
|
return tree
|
||||||
|
|
||||||
|
def create_start_list_pdf(self, file_name):
|
||||||
|
pdf = FPDF()
|
||||||
|
pdf.add_page()
|
||||||
|
pdf.add_font("DejaVuSans", fname="/usr/share/fonts/dejavu-sans-fonts/DejaVuSans.ttf")
|
||||||
|
pdf.set_font("DejaVuSans", size=10)
|
||||||
|
line_height = pdf.font_size * 2
|
||||||
|
col_width = pdf.epw / 4 # distribute content evenly
|
||||||
|
for runner in self.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.name, border=1, ln=3, max_line_height=pdf.font_size)
|
||||||
|
pdf.multi_cell(col_width, line_height, str(runner.card), border=1, ln=3, max_line_height=pdf.font_size)
|
||||||
|
if runner.start_time != 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)
|
||||||
|
pdf.ln(line_height)
|
||||||
|
pdf.output(file_name)
|
||||||
|
|
||||||
class runner:
|
class runner:
|
||||||
def __init__(self, runner_id, first, last, club, country, card, o_class, start_time):
|
def __init__(self, runner_id, first, last, club, country, card, o_class, start_time):
|
||||||
self.id = runner_id
|
self.id = runner_id
|
||||||
|
Loading…
Reference in New Issue
Block a user