How to change page size in pdf generated by pisa
Asked Answered
L

1

5

I am creating pdf from my html page using pisa in django framework. Can anyone please tell me how to adjust the pdf page size. I tried to use A5 but its not reflecting. Please find the code below:

       context_dict = {
            'pagesize':'A5',
            'result_detail': obj.result_object(slug, roll_no),
            'roll_no': roll_no
       }
       template = get_template('widgets/result.html')
       context = Context(context_dict)
       html  = template.render(context)
       result = StringIO.StringIO()
       pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result)
Leafy answered 29/4, 2014 at 10:17 Comment(0)
S
7

You can do it by overloading a default CSS definition.
To get the current default CSS use the command line tool like this:

xhtml2pdf --css-dump > /path-to-your-project/default.css

Then, open the resulting file and insert the following line at the end:

@page { size: A5 }

In your code, you can use the resulting file as follows:

pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result,  default_css=open('default.css','r').read())
Stung answered 29/4, 2014 at 13:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.