def render_to_response(self, context, **response_kwargs):
     response = HttpResponse(mimetype='application/pdf')
     response['Content-Disposition'] = 'attachment; filename=all_deicisions_equivalence.pdf'
     all_wishes = self.get_all_viable_wishes()
     big_pdf = pisapdf.pisaPDF()
     for wish in all_wishes:
         wish.add_decision_equi_pdf(pdf=big_pdf, request=self.request, context=self.get_wish_context_data(wish))
     big_pdf.join(response)
     return response
Exemple #2
0
 def render_to_response(self, context, **response_kwargs):
     response = HttpResponse(mimetype='application/pdf')
     response['Content-Disposition'] = 'attachment; filename=auditeur_libre.pdf'
     pdf = pisapdf.pisaPDF()
     pdf.addDocument(pisa.CreatePDF(
         render_to_string(self.templates['etiquette'], context, context_instance=RequestContext(self.request))))
     pdf.addDocument(pisa.CreatePDF(render_to_string(self.templates['dossier_inscription'], context,
                                                     context_instance=RequestContext(self.request))))
     pdf.addDocument(pisa.CreatePDF(render_to_string(self.templates['formulaire_paiement_droit'], context,
                                                     context_instance=RequestContext(self.request))))
     pdf.join(response)
     return response
Exemple #3
0
    def publipostage(self, fichier, template, texte, num_etu, objects):
        wb = xlrd.open_workbook(os.path.join(BASE_DIR, fichier))
        sh = wb.sheet_by_index(0)
        translation.activate(settings.LANGUAGE_CODE)
        i = 0
        for rownum in range(sh.nrows):
            i += 1
            if rownum == 0:
                continue

            if sh.cell(rownum, 0).value == "":
                break
            values = sh.row_values(rownum)
            cod_etu = int(values[num_etu])
            context = {'static': os.path.join(BASE_DIR, 'documents/static/images/').replace('\\', '/')}

            context['num_group'] = int(values[1])

            context['date_1'] = self.date(values[3])
            context['salle_1'] = int(values[2])
            context['date_2'] = self.date(values[5])
            context['salle_2'] = int(values[4])

            individu = Individu.objects.get(cod_etu=cod_etu)
            f = open('convocation.pdf', 'wb')

            context['individu'] = individu
            pdf = pisapdf.pisaPDF()
            pdf.addDocument(pisa.CreatePDF(render_to_string(template, context)))  # on construit le pdf
            if self.deroulement:
                pdf.addFromFile(self.deroulement)

            pdf.join(f)
            liste_email = [individu.get_email(2014), email_ied(individu), '*****@*****.**'] if not settings.DEBUG else ['*****@*****.**']
            email = EmailMessage(subject=objects, body=texte, from_email='*****@*****.**',
                                 to=liste_email)

            f.close()

            f = open('convocation.pdf', 'r')
            email.attach(filename='convocation_regoupement.pdf', content=f.read())
            email.send()
            print "email envoyé à %s" % individu.cod_etu
            if i == 100:
                time.sleep(5)
                i = 0

            f.close()
            if settings.DEBUG:
                if rownum == 1:
                    break
        print "fini"
 def form_valid(self, form):
     low = form.cleaned_data['low']
     high = form.cleaned_data['high']
     if high > Wish.objects.filter(suivi_dossier='equivalence_reception').count():
         high = Wish.objects.filter(suivi_dossier='equivalence_reception').count()
     name = 'decisions_equivalence_de_' + str(low) + '_a_' + str(high) + ".pdf"
     response = HttpResponse(mimetype='application/pdf')
     response['Content-Disposition'] = 'attachment; filename=' + name
     all_wishes = self.get_all_viable_wishes(low, high)
     big_pdf = pisapdf.pisaPDF()
     for wish in all_wishes:
         wish.add_decision_equi_pdf(pdf=big_pdf, request=self.request, context=self.get_wish_context_data(wish))
     big_pdf.join(response)
     return response
Exemple #5
0
def convert_index(url, outfile):
    ndx = url.rfind("/")
    base_url = url[:ndx]
    c = download_page_contents(url)
    list = get_urls(c)

    pdf = pisa_pdf.pisaPDF()
    for l in list:
        u = base_url + "/" + l
        c = download_page_contents(u)

        subPdf = pisa.pisaDocument(c)
        pdf.addDocument(subPdf)

    res = pdf.getvalue()
    f = open(outfile, "wb").write(res)
Exemple #6
0
def html_to_pdf(content, encoding="utf-8",
                link_callback=fetch_resources, **kwargs):
    """
    Converts html ``content`` into PDF document.

    :param unicode content: html content
    :returns: PDF content
    :rtype: :class:`bytes`
    :raises: :exc:`~easy_pdf.exceptions.PDFRenderingError`
    """
    src = BytesIO(content.encode(encoding))
    dest = BytesIO()

    pdf = pisa.pisaDocument(src, dest, encoding=encoding,
                            link_callback=link_callback, **kwargs)
    if pdf.err:
        logger.error("Error rendering PDF document")
        for entry in pdf.log:
            if entry[0] == xhtml2pdf.default.PML_ERROR:
                logger_x2p.error("line %s, msg: %s, fragment: %s", entry[1], entry[2], entry[3])
        raise PDFRenderingError("Errors rendering PDF", content=content, log=pdf.log)

    if pdf.warn:
        for entry in pdf.log:
            if entry[0] == xhtml2pdf.default.PML_WARNING:
                logger_x2p.warning("line %s, msg: %s, fragment: %s", entry[1], entry[2], entry[3])

    prepend_files = kwargs.get('prepend_files', [])
    append_files = kwargs.get('append_files', [])
    if prepend_files or append_files:
        base_pdf = pisaPDF()
        for filename in prepend_files:
            base_pdf.addFromFileName(filename)
        base_pdf.addFromString(dest.getvalue())
        for filename in append_files:
            base_pdf.addFromFileName(filename)
        return base_pdf.getvalue()
    return dest.getvalue()
Exemple #7
0
def render_to_pdfxhtml2pdf(template_src, context_dict, request=None, context_instance=None, filename='file.pdf',
                           attachments=[]):
    from xhtml2pdf import pisa
    from xhtml2pdf.pdf import pisaPDF
    # Renderiza o HTML
    template = loader.get_template(template_src)
    if request:
        context = RequestContext(request)
    else:
        context = Context()

    context.update(context_dict)
    html = template.render(context)

    # Removendo CSS microsoft que causam erro no XHTML2PDF
    html = html.replace('-moz-use-text-color', '')
    html = html.replace('border: medium none;', 'border-width: medium 0 0 0;')

    pdf = pisaPDF()
    pdf_princ = pisa.pisaDocument(StringIO.StringIO(html.encode("utf-8")), link_callback=fetch_resources)
    pdf.addDocument(pdf_princ)
    a = 0
    for f, d, t in attachments:
        a += 1
        pdf.addDocument(pisa.pisaDocument(
            StringIO.StringIO((u'<div style="text-align:center; font-size:22px; padding-top:12cm;">'
                               u'<strong>Anexo %s<br />%s</strong></div>' % (a, d)).encode('utf-8'))))
        if t == 1:
            pdf.addFromFile(f)
        elif t == 2:
            pdf.addFromString(f)

    if not pdf_princ.err:
        response = HttpResponse(content_type='application/pdf')
        response.write(pdf.getvalue())
        response['Content-Disposition'] = 'attachment; filename=%s' % filename
        return response
    return HttpResponse('We  had some errors<pre>%s</pre>' % cgi.escape(html))
 def do_pdf_decision_equi_pdf(self, flux, request, context):
     pdf = pisapdf.pisaPDF()
     self.add_decision_equi_pdf(pdf, request, context)
     pdf.join(flux)
     return flux
 def __init__(self, template, dataset=[]):
     self.template = template
     self.dataset = dataset
     self.pdf_base = pisaPDF()
Exemple #10
0
    def publipostage(self, fichier, template, texte, num_etu, objects):
        wb = xlrd.open_workbook(os.path.join(BASE_DIR, fichier))
        sh = wb.sheet_by_index(0)
        translation.activate(settings.LANGUAGE_CODE)
        i = 0
        for rownum in range(sh.nrows):
            i += 1
            if rownum == 0:
                continue

            if sh.cell(rownum, 0).value == "":
                break
            values = sh.row_values(rownum)
            cod_etu = int(values[num_etu])
            context = {
                'static':
                os.path.join(BASE_DIR,
                             'documents/static/images/').replace('\\', '/')
            }

            context['num_group'] = int(values[1])

            context['date_1'] = self.date(values[3])
            context['salle_1'] = int(values[2])
            context['date_2'] = self.date(values[5])
            context['salle_2'] = int(values[4])

            individu = Individu.objects.get(cod_etu=cod_etu)
            f = open('convocation.pdf', 'wb')

            context['individu'] = individu
            pdf = pisapdf.pisaPDF()
            pdf.addDocument(pisa.CreatePDF(render_to_string(
                template, context)))  # on construit le pdf
            if self.deroulement:
                pdf.addFromFile(self.deroulement)

            pdf.join(f)
            liste_email = [
                individu.get_email(2014),
                email_ied(individu), '*****@*****.**'
            ] if not settings.DEBUG else ['*****@*****.**']
            email = EmailMessage(subject=objects,
                                 body=texte,
                                 from_email='*****@*****.**',
                                 to=liste_email)

            f.close()

            f = open('convocation.pdf', 'r')
            email.attach(filename='convocation_regoupement.pdf',
                         content=f.read())
            email.send()
            print "email envoyé à %s" % individu.cod_etu
            if i == 100:
                time.sleep(5)
                i = 0

            f.close()
            if settings.DEBUG:
                if rownum == 1:
                    break
        print "fini"
 def __init__(self, template, dataset=[]):
     self.template = template
     self.dataset = dataset
     self.pdf_base = pisaPDF()