Django pdf with logo

I created a pisa invoice template template. But I want to display the logo (image) in the pdf file along with the text. I donโ€™t know how to display pdf image. My views:

def generate_invoice(request, user_id = None): personal_html = '' personal_html += 'hai' fileread = str(settings.TEMPLATE_DIRS[0])+str('/invoice.html') fr = open(fileread, "r").read() fr = fr.replace('personal_details', personal_html) result = StringIO.StringIO() pdf = pisa.CreatePDF( fr,result ) filewrite = str(settings.TEMPLATE_DIRS[0]) + str('/invoice_write.html') empty = "" fw = open(filewrite, 'w') fw.write(empty) fw.write(fr) fw.close() PaymentPdf.objects.filter(invoicepdf = user_id).delete() pdf_contents = render_to_pdf1('invoice_write.html',result) file_to_be_saved = ContentFile(pdf_contents) random_str = ''.join(random.sample((string.ascii_lowercase + string.ascii_uppercase + string.digits), 8)) resume_name = (str(user_id) + "_" + random_str + ".pdf").replace("@", '') resume = PaymentPdf.objects.create(name = resume_name, invoicepdf_id = user_id, created_by = request.user) resume.name.save(resume_name ,file_to_be_saved) file_path = PaymentPdf.objects.get(invoicepdf = user_id).name pdf_file = str(file_path).split("media")[1] return HttpResponseRedirect('/site_media' + pdf_file) def render_to_pdf1(template_src, context_dict): template = get_template(template_src) context = Context(context_dict) html = template.render(context) result = StringIO.StringIO() pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result) return result.getvalue() 

Anyone help me display pdf image?

+4
source share
2 answers

Refer Pisa (XHTML -> PDF) in Django does not display images in PDF and adds lines

 links = lambda uri, rel: os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, '')) pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")),dest=result, link_callback=links) 

in render_to_pdf1 views, and in html:

 <img src="/site_media/img/logo.jpg"/ height="55" width="275"> 

He will work.

+3
source

I think html contains something like this:

 <img src="/media/xxx.jpg"/> 

And Pisa needs something like this:

 <img src="http://mydomain.foo/media/xxx.jpg"/> 
0
source

All Articles