How to save (store) PDF file generated by weasyprint to specified directory?

Viewed 7462

I need my pdf files that is generated by weasyprint to be some specified folder, for example in the folder "my_project/pdf_files/"

NOTE: I am using django framework for my project. And here is the structure of project.

my_project/

----pdf_generator_app/

--------admin.py

--------models.py

--------views.py

pdf_files/

Currently I have this in my views.py

def generate(student_id):
    student = get_object_or_404(Student, application_id=student_id)
    html = render_to_string('contract.html', {'student': student})
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'filename="some_file.pdf"'
    weasyprint.HTML(string=html).write_pdf('myfile.pdf', 
                                           presentational_hints=True,
                                           stylesheets=[weasyprint.CSS(settings.STATIC_ROOT + '/css/styles.css')])
    return response

But this view does not store pdf file to a directory. It simply show file on browser. I need the file to be stored in the directory my_project/pdf_files/

3 Answers

You can pass a file name as a parameter and it will store the PDF as a file:

HTML(string=html).write_pdf('out.pdf')
Related