def DateienEinlesen(self, pathUnter: str, pathZuordnung: str): dateiUnter = open(pathUnter, "r") stunden = dateiUnter.read().splitlines() dateiUnter.close() dateiZuordnung = open(pathZuordnung, "r") zuordnung = dateiZuordnung.read().splitlines() dateiZuordnung.close() while "" in stunden: stunden.remove("") stundenListen = [] #2d list for element in stunden: if element[0] == "U": a = element.split(" ") while "" in a: a.remove("") if "//" in a: # if \\ in a a = a[:a.index("//")] stundenListen.append(a) while [] in stundenListen: stundenListen.remove([]) while "" in zuordnung: zuordnung.remove("") zuordnungListen = [] #2d list for element in zuordnung: if element[0] == "U": a = element.split(" ") while "" in a: a.remove("") if "//" in a: # if \\ in a a = a[:a.index("//")] zuordnungListen.append(a) while [] in zuordnungListen: zuordnungListen.remove([]) dictionary = {} # ([unter],[zuord]) for element in stundenListen: dictionary[element[0]] = element for element in zuordnungListen: dictionary[element[0]] = (dictionary[element[0]], element) for _, uz in dictionary.items(): tag = Tools.convertWeekdayGerman(uz[0][1]) stunde = uz[0][2] klasse = uz[1][1] lehrer = uz[0][5] raum = uz[0][3] fach = uz[1][2] Stunde(tag, stunde, klasse, lehrer, raum, fach)
def exportierenPDF(self, path, datum): font = "Helvetica" # basic pdf setup #---------------------------------------- pdf = FPDF() pdf.set_font(font, size=12) pdf.add_page() row_height = pdf.font_size * 1.5 #---------------------------------------- # set title #---------------------------------------- datumStr = str(Tools.convertWeekdayGerman( datum.dayOfWeek())) + ', ' + str(datum.day()) + '.' + str( datum.month()) + '.' + str(datum.year()) title = "Vertretungsplan von " + datumStr pdf.set_font(font, 'B', 14) w = pdf.get_string_width(title) + 6 pdf.set_x((210 - w) / 2) pdf.cell(w, 9, txt=title, border=0) pdf.ln(10) #---------------------------------------- if datum.Informationen() != "": # set info title #---------------------------------------- title = "allgemeine Informationen" pdf.set_font(font, '', 12) w = pdf.get_string_width(title) + 6 pdf.set_x(10) pdf.cell(w, 9, txt=title, border=0) pdf.ln(10) #---------------------------------------- # set info #---------------------------------------- pdf.set_font(font, 'I', 11) w = pdf.get_string_width(datum.Informationen()) + 6 pdf.set_x(10) pdf.cell(w, 9, txt=datum.Informationen(), border=1) pdf.ln(10) pdf.ln(10) #---------------------------------------- # set table #---------------------------------------- # content = [((("str",width),("str",width),("str",width),("str",width),("str",width)),("Art","typ",size)), # ((("str",width),("str",width),("str",width),("str",width),("str",width)),("Art","typ",size))] content = [] t1 = ("Klasse", pdf.get_string_width("Klasse") + 6) t2 = ("Std", pdf.get_string_width("Std") + 6) t3 = ("Fach", pdf.get_string_width("Fach") + 6) t4 = ("Vertretung", pdf.get_string_width("Vertretung") + 6) t5 = ("Raum", pdf.get_string_width("Raum") + 6) t6 = ("Bemerkung", pdf.w - t1[1] - t2[1] - t3[1] - t4[1] - t5[1] - 20) content.append(((t1, t2, t3, t4, t5, t6), (font, 'B', 13))) for stunde in Vertretungsstunde.VertretungsstundenListe(): if stunde.datum == datum: klasse = (str(stunde.Klasse()), t1[1]) stu = (str(stunde.Stunde()), t2[1]) fach = (str(stunde.Fach()), t3[1]) lehrer = (str(stunde.Lehrer()), t4[1]) raum = (str(stunde.Raum()), t5[1]) bemerkung = (stunde.Bemerkung(), t6[1]) item = (klasse, stu, fach, lehrer, raum, bemerkung) content.append((item, (font, '', 12))) for row in content: font = row[1][0] style = row[1][1] size = row[1][2] pdf.set_font(font, style, size) row_height = pdf.font_size * 1.5 for item in row[0]: pdf.cell(item[1], row_height, txt=item[0], border=1) pdf.ln(row_height) #---------------------------------------- pdf.output(path)