Downloading html as pdf using popen, headless chrome option

45 views
Skip to first unread message

Aadil Rashid

unread,
Feb 1, 2022, 12:55:36 PM2/1/22
to Django users
I am trying to generating pdf from webpages, using popen , but when i call this
view it generates UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd3 in position 10: invalid continuation byte

This is my view
from projName.settings import BASE_DIR
from subprocess import Popen, PIPE, STDOUT
from wsgiref.util import FileWrapper
from django.http import StreamingHttpResponse

class DownloadAsPDF(View):
def post(self, request, *args, **kwargs):
base = str(BASE_DIR)
file_name = str( base + '/testreport.pdf')
post_url = request.POST.get("page_url")
url = str('http://' + request.get_host() + post_url)
chrome_args = ['/path/google-chrome', '--headless', '--virtual-time-buget=20000',
'--print-to-pdf=/path/testreport.pdf', url]
external_process = Popen(chrome_args, stdout=PIPE, stderr=STDOUT)
external_process.wait()
return_file = FileWrapper(open('{}'.format(file_name), 'r'))
download_file_name = 'report'
response = StreamingHttpResponse(return_file, content_type='application/force-download')
response['Content-Disposition'] = f'attachment; filename= {download_file_name}.pdf'
return response


Can please anybody, tell me why is it generating this error and what is the possible solution
this problem, Thanks you very much

Jisson Varghese

unread,
Feb 1, 2022, 1:09:22 PM2/1/22
to django...@googlegroups.com
Check whether FileResponse instead of StreamingHttpResponse helps to solve the issue , https://docs.djangoproject.com/en/4.0/ref/request-response/#fileresponse-objects

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/9a0b68e5-a587-4ac4-a018-a8fcc18f1cf4n%40googlegroups.com.


--
Jisson Varghese

Aadil Rashid

unread,
Feb 1, 2022, 1:24:43 PM2/1/22
to Django users
@Jisson Varghese Thank you very much it worked completely fine now
Reply all
Reply to author
Forward
0 new messages