Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.59 KB | None | 0 0
  1. class CustomPdfResponse(CustomHtmlRender):
  2.     media_type = "application/pdf"
  3.     format = "pdf"
  4.  
  5.     def get_pdf(self, html_string):
  6.         url = 'http://localhost:9288/'
  7.         pdf_name = "test.pdf"
  8.         header = {"pdf-options": "landscape"}
  9.  
  10.         return requests.post(url + pdf_name, data=html_string, headers=header)
  11.  
  12.     def render(self, data, accepted_media_type=None, renderer_context=None, **kwargs):
  13.         graphics = renderer_context['request'].query_params.get("graphics", False)
  14.         title = renderer_context['request'].query_params.get("title").strip()
  15.         title = title.replace("\n", "").encode('ascii', 'xmlcharrefreplace').decode("utf-8")
  16.  
  17.         filter_context = renderer_context['request'].query_params.get("date_filter").strip()
  18.         filter_context = filter_context.replace("\n", "").encode('ascii', 'xmlcharrefreplace')
  19.         filter_context = filter_context.decode("utf-8")
  20.  
  21.         if not graphics:
  22.             if not isinstance(data, DataFrame):
  23.                 data = data["results"]
  24.  
  25.             table, is_multi_index = self.get_table(data, renderer_context, without_perms = True)
  26.             table = str(table.replace("\n", "").encode('ascii', 'xmlcharrefreplace').decode("utf-8")),
  27.         else:
  28.             graphics = renderer_context['request'].data.get("graphics")
  29.             is_multi_index = False
  30.  
  31.         render_context = {
  32.             'table': table if not graphics else False,
  33.             'graphic': graphics,
  34.             'title': title,
  35.             'filter': filter_context,
  36.             'is_multi_index': is_multi_index
  37.         }
  38.  
  39.         html_string = render_to_string("pdf_template.html", context=render_context)
  40.         print(html_string)
  41.  
  42.         return HttpResponse(self.get_pdf(html_string), content_type=accepted_media_type, status=200)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement