Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Provide tab title with reportlab generated pdf

This question is really simple, but I can't find any data on it. When I generate a pdf with reportlab, passing the httpresponse as a file, browsers that are configured to show files display the pdf correctly. However, the title of the tab remains "(Anonymous) 127.0.0.1/whatnot", which is kinda ugly for the user.

Since most sites are able to somehow display an appropiate title, I think it's doable... Is there some sort of title parameter that I can pass to the pdf? Or some header for the response? This is my code:

def render_pdf_report(self, context, file_name):
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'filename="{}"'.format(file_name)

    document = BaseDocTemplate(response, **self.get_create_document_kwargs())
    #  pdf generation code
    document.build(story)
    return response
like image 624
Alvaro Avatar asked Feb 02 '15 13:02

Alvaro


People also ask

How do I wrap text in a table cell in ReportLab?

As mentioned, you can use 'VALIGN' to wrap text within the cells, but there is another hack if you want to further control the table elements on the canvas. Now adding two components: rowHeights attribute. _argH for finer editing of the row heights.

Is ReportLab free?

ReportLab is a free open-source document creation engine for generating PDF documents and custom vector graphics.


1 Answers

Seems that Google Chrome doesn't display the PDF titles at all. I tested the link in your comment (biblioteca.org.ar) and it displays in Firefox as " - 211756.pdf", seems there's an empty title and Firefox then just displays the filename instead of the full URL path.

I reproduced the same behaviour using this piece of code:

from reportlab.pdfgen import canvas

c = canvas.Canvas("hello.pdf")
c.setTitle("hello stackoverflow")
c.drawString(100, 750, "Welcome to Reportlab!")
c.save()

Opening it in Firefox yields the needed result:

I found out about setTitle in ReportLab's User Guide. It has it listed on page 16. :)

like image 120
Igor Hatarist Avatar answered Sep 29 '22 07:09

Igor Hatarist