Source code for pyxml2pdf.core.initializer

from typing import List

from defusedxml.ElementTree import parse
from reportlab.lib.pagesizes import mm
from reportlab.platypus import SimpleDocTemplate
from reportlab.platypus.flowables import KeepTogether

from pyxml2pdf.core.parser import Parser
from pyxml2pdf.core.post_processor import PostProcessor
from pyxml2pdf.core.sorter import Sorter


[docs]class Initializer: """Coordinate the construction of the pdf result :param str input_path: path to input xml-file :param str output_path: path to pdf file containing result """ __data: List[KeepTogether] def __init__(self, input_path, output_path): self.__data = [] parser = Parser(self.__data) pdf = SimpleDocTemplate( output_path, pagesize=(178 * mm, 134 * mm), topMargin=0.0, bottomMargin=0.0, leftMargin=0.0, rightMargin=0.0, ) doc = parse(input_path) sorter = Sorter(doc.findall("kurs")) sorted_courses = sorter.sort_parsed_xml("TerminDatumVon1") parser.collect_xml_data(sorted_courses) pdf.build(self.__data) pdf_postprocessor = PostProcessor(output_path) pdf_postprocessor.finalize_print_preparation()