コード例 #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
コード例 #2
0
ファイル: test_pdf.py プロジェクト: l1ph0x/schooltool-2
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
コード例 #3
0
ファイル: report.py プロジェクト: achouhans/schooltool-2.8.5
 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
コード例 #4
0
ファイル: report.py プロジェクト: achouhans/schooltool-2.8.5
 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
コード例 #5
0
ファイル: report.py プロジェクト: docker2use/schooltool
    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
コード例 #6
0
ファイル: report.py プロジェクト: l1ph0x/schooltool-2
    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
コード例 #7
0
ファイル: report.py プロジェクト: achouhans/schooltool-2.8.5
 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
コード例 #8
0
ファイル: report.py プロジェクト: achouhans/schooltool-2.8.5
 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