Ejemplo n.º 1
0
def tryToSetUpReportLab():
    """Try to set up reportlab.

    Returns True without doing anything if pdf.isEnabled() is True.

    Tries to guess the location of fonts.  Returns True on success,
    False if reportlab is not available or fonts could not be found.

    If something breaks during setUpFonts, the exception
    will be propagated up.
    """
    try:
        import reportlab
    except ImportError:
        return False # We don't have reportlab, so we can't get anywhere.

    from schooltool.app import pdf
    if pdf.isEnabled():
        return True # Assume that reportlab has been configured already.

    # Heuristic to try and find the TrueType fonts.
    font_dirs = ['/usr/share/fonts/truetype/ttf-liberation', # Debian
                 '/usr/share/fonts/truetype/liberation', # Fedora
                 '/usr/share/fonts/truetype/ubuntu-font-family', # Ubuntu font family
                 r'C:\WINDOWS\Fonts']
    try:
        setUpFonts(font_dirs)
        return True
    except reportlab.pdfbase.ttfonts.TTFError:
        return False
Ejemplo n.º 2
0
def tryToSetUpReportLab():
    """Try to set up reportlab.

    Returns True without doing anything if pdf.isEnabled() is True.

    Tries to guess the location of fonts.  Returns True on success,
    False if reportlab is not available or fonts could not be found.

    If something breaks during setUpFonts, the exception
    will be propagated up.
    """
    try:
        import reportlab
    except ImportError:
        return False  # We don't have reportlab, so we can't get anywhere.

    from schooltool.app import pdf
    if pdf.isEnabled():
        return True  # Assume that reportlab has been configured already.

    # Heuristic to try and find the TrueType fonts.
    font_dirs = [
        '/usr/share/fonts/truetype/ttf-liberation',  # Debian
        '/usr/share/fonts/truetype/liberation',  # Fedora
        '/usr/share/fonts/truetype/ubuntu-font-family',  # Ubuntu font family
        r'C:\WINDOWS\Fonts'
    ]
    try:
        setUpFonts(font_dirs)
        return True
    except reportlab.pdfbase.ttfonts.TTFError:
        return False
Ejemplo n.º 3
0
 def renderToFile(self):
     filename = _quoteUrl(self.filename)
     if not pdf.isEnabled():
         return filename, None
     filename = _quoteUrl(self.filename)
     xml = self.template()
     stream = rml2pdf.parseString(xml, filename=filename)
     data = stream.getvalue()
     return filename, data
Ejemplo n.º 4
0
 def renderToFile(self):
     filename = _quoteUrl(self.filename)
     if not pdf.isEnabled():
         return filename, None
     filename = _quoteUrl(self.filename)
     xml = self.template()
     stream = rml2pdf.parseString(xml, filename=filename)
     data = stream.getvalue()
     return filename, data
Ejemplo n.º 5
0
    def __call__(self):
        if not pdf.isEnabled():
            return translate(self.pdf_disabled_text, context=self.request)
        self.update()
        if self.request.response.getStatus() in [300, 301, 302, 303, 304, 305, 307]:
            return u""

        rml = self.render()
        data = self.renderPDF(rml)

        return data
Ejemplo n.º 6
0
    def __call__(self):
        if not pdf.isEnabled():
            return translate(self.pdf_disabled_text, context=self.request)
        self.update()
        if self.request.response.getStatus() in [
                300, 301, 302, 303, 304, 305, 307
        ]:
            return u''

        rml = self.render()
        data = self.renderPDF(rml)

        return data
Ejemplo n.º 7
0
 def __call__(self):
     if not pdf.isEnabled():
         return translate(self.pdf_disabled_text, context=self.request)
     filename, data = self.renderToFile()
     self.setUpResponse(data, filename)
     return data
Ejemplo n.º 8
0
 def __call__(self):
     if not pdf.isEnabled():
         return translate(self.pdf_disabled_text, context=self.request)
     filename, data = self.renderToFile()
     self.setUpResponse(data, filename)
     return data