python pdfkit не отображает обложку

Я использую pdfkit для создания pdf из строки html.

Вот мой код:

cover = '<html> <head></head><body><h1>hello<h1></body> </html>'
body = "<html> <head></head><body><h1>hello<h1></body> </html>"
pdf = dfkit.from_string(body, False, cover=cover, cover_first=True)

Работает нормально, если я не использую cover, если я использую cover, выдает следующую ошибку:

    Traceback (most recent call last):
psf_1         |   File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/exception.py", line 35, in inner
psf_1         |     response = get_response(request)
psf_1         |   File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 158, in _get_response
psf_1         |     response = self.process_exception_by_middleware(e, request)
psf_1         |   File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 156, in _get_response
psf_1         |     response = response.render()
psf_1         |   File "/usr/local/lib/python3.5/dist-packages/django/template/response.py", line 106, in render
psf_1         |     self.content = self.rendered_content
psf_1         |   File "/usr/local/lib/python3.5/dist-packages/rest_framework/response.py", line 72, in rendered_content
psf_1         |     ret = renderer.render(self.data, accepted_media_type, context)
psf_1         |   File "/usr/local/lib/python3.5/dist-packages/rest_framework/renderers.py", line 724, in render
psf_1         |     context = self.get_context(data, accepted_media_type, renderer_context)
psf_1         |   File "/usr/local/lib/python3.5/dist-packages/rest_framework/renderers.py", line 681, in get_context
psf_1         |     'content': self.get_content(renderer, data, accepted_media_type, renderer_context),
psf_1         |   File "/usr/local/lib/python3.5/dist-packages/rest_framework/renderers.py", line 422, in get_content
psf_1         |     content = renderer.render(data, accepted_media_type, renderer_context)
psf_1         |   File "/usr/local/lib/python3.5/dist-packages/rest_framework/renderers.py", line 105, in render
psf_1         |     allow_nan=not self.strict, separators=separators
psf_1         |   File "/usr/local/lib/python3.5/dist-packages/rest_framework/utils/json.py", line 28, in dumps
psf_1         |     return json.dumps(*args, **kwargs)
psf_1         |   File "/usr/lib/python3.5/json/__init__.py", line 237, in dumps
psf_1         |     **kw).encode(obj)
psf_1         |   File "/usr/lib/python3.5/json/encoder.py", line 200, in encode
psf_1         |     chunks = list(chunks)
psf_1         |   File "/usr/lib/python3.5/json/encoder.py", line 436, in _iterencode
psf_1         |     o = _default(o)
psf_1         |   File "/usr/local/lib/python3.5/dist-packages/rest_framework/utils/encoders.py", line 68, in default
psf_1         |     return super(JSONEncoder, self).default(obj)
psf_1         |   File "/usr/lib/python3.5/json/encoder.py", line 179, in default
psf_1         |     raise TypeError(repr(o) + " is not JSON serializable")
psf_1         | TypeError: OSError('wkhtmltopdf reported an error:\nLoading pages (1/6)\n[>                                                           ] 0%\r[===>                                                        ] 5%\r[======>                                                     ] 10%\r[=======>                                                    ] 
12%\rError: Failed loading page http:/head>\r\n                                   <body>\r\n                                   <div class="container">\r\n                                      hello\r\n                                   </div>\r\n                                   </body>\r\n                                   </html> (sometimes it will work just to ignore this error with --load-error-handling ignore)\n[=========>                                                  ] 
15%

Я думал, что это может быть потому, что я использую строку для покрытия, чем URL для HTML.

Итак, я добавил конечную точку, которая возвращает HTML, даже тогда он по-прежнему выдает ту же ошибку.

Вот его URL-версия: конечная точка django

options = {'encoding': "UTF-8"}
cover = '{}/api/blahblah/blah'.format('localhost:8088')
body = "<html> <head></head><body><h1>hello<h1></body> </html>"
pdf = dfkit.from_string(body, False, options =options, cover=cover, cover_first=True)

Конечная точка отлично работает снаружи, если попытаться попасть в нее после сообщения man. Но если использовать его с pdfkit, он генерирует ConnectionRefusedError.

Если я удаляю крышку все вместе, она работает нормально, она создает PDF. Но нужна обложка. Какие-либо предложения?

1 ответ

Разобрался с вопросом. Я полностью забыл, что запускаю его внутри контейнера докера, поэтому локальный хост никогда не разрешается.

Другие вопросы по тегам