Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CustomPdfResponse(CustomHtmlRender):
- media_type = "application/pdf"
- format = "pdf"
- def get_pdf(self, html_string):
- url = 'http://localhost:9288/'
- pdf_name = "test.pdf"
- header = {"pdf-options": "landscape"}
- return requests.post(url + pdf_name, data=html_string, headers=header)
- def render(self, data, accepted_media_type=None, renderer_context=None, **kwargs):
- graphics = renderer_context['request'].query_params.get("graphics", False)
- title = renderer_context['request'].query_params.get("title").strip()
- title = title.replace("\n", "").encode('ascii', 'xmlcharrefreplace').decode("utf-8")
- filter_context = renderer_context['request'].query_params.get("date_filter").strip()
- filter_context = filter_context.replace("\n", "").encode('ascii', 'xmlcharrefreplace')
- filter_context = filter_context.decode("utf-8")
- if not graphics:
- if not isinstance(data, DataFrame):
- data = data["results"]
- table, is_multi_index = self.get_table(data, renderer_context, without_perms = True)
- table = str(table.replace("\n", "").encode('ascii', 'xmlcharrefreplace').decode("utf-8")),
- else:
- graphics = renderer_context['request'].data.get("graphics")
- is_multi_index = False
- render_context = {
- 'table': table if not graphics else False,
- 'graphic': graphics,
- 'title': title,
- 'filter': filter_context,
- 'is_multi_index': is_multi_index
- }
- html_string = render_to_string("pdf_template.html", context=render_context)
- print(html_string)
- return HttpResponse(self.get_pdf(html_string), content_type=accepted_media_type, status=200)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement