Код c ошибка при генерации pdf через pdfkit - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь сгенерировать файл pdf из html шаблона через библиотеку pdfkit. Все работает нормально, ожидайте случай, когда используются некоторые специальные символы в местном алфавите (например, «Ž» в этом случае). Затем появляется следующая ошибка:

UnicodeEncodeError: код 'latin-1' c не может закодировать символ '\ u017d' в позиции 57: порядковый номер не в диапазоне (256)

Код:

if request.form['action'] == 'Print':
    config = pdfkit.configuration(wkhtmltopdf=path_wkhtmltopdf)
    rendered = render_template('pdf.html')

    pdf = pdfkit.from_string(rendered, False, configuration=config)

    response = make_response(pdf)
    response.headers['Content-Type'] = 'application/pdf'

    response.headers['Content-Disposition'] = 'attachment; filename='filename.pdf'

    return response

В шаблоне html также определен набор символов: <meta charset="utf-8">

Есть ли у вас какие-либо идеи, что является причиной root и как это исправить?

1 Ответ

0 голосов
/ 20 января 2020

Исправлена ​​ошибка, я изменил 'latin-1' на 'utf-8' в. \ Python \ Lib \ http \ server.py:

    def send_header(self, keyword, value):
    """Send a MIME header to the headers buffer."""
    if self.request_version != 'HTTP/0.9':
        if not hasattr(self, '_headers_buffer'):
            self._headers_buffer = []
        self._headers_buffer.append(
            ("%s: %s\r\n" % (keyword, value)).encode('utf-8', 'strict'))
...