'Constructor
@param pageWidth: the printable width
@param exclude_class_list: list of classes for elements to skip
@param styles: the styles dict from the caller'

def __init__(self, pageWidth, exclude_class_list=[], styles=None):

    set_fonts(self)
    self.exclude_class_list = exclude_class_list
    self.pageWidth = pageWidth
    self.fontsize = 10
    styleSheet = getSampleStyleSheet()
    self.plainstyle = styleSheet['Normal']
    self.plainstyle.fontName = self.font_name
    self.plainstyle.fontSize = 9
    self.boldstyle = deepcopy(styleSheet['Normal'])
    self.boldstyle.fontName = self.font_name_bold
    self.boldstyle.fontSize = 10
    self.titlestyle = deepcopy(styleSheet['Normal'])
    self.titlestyle.fontName = self.font_name_bold
    self.titlestyle.fontSize = 16
    self.normalstyle = self.plainstyle
    self.style_lookup = {'pdf_title': self.titlestyle}
    self.styles = styles
