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
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
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
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)
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()
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()
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"