Японский (не ascii) шрифт для WeasyPrint в Google Colab - PullRequest
0 голосов
/ 03 марта 2019

У меня есть этот шаблон, написанный на Python, который экспортирует png в конце, но японские символы отображаются некорректно.

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

Я использую Google Colab Laboratory, так что это может вызвать проблемы?

Например:

import pandas as pd
from weasyprint import HTML, CSS
from weasyprint.fonts import FontConfiguration
from jinja2 import Environment, FileSystemLoader

env = Environment(loader=FileSystemLoader('.'))
template = env.get_template("template.html")

name_var = "にほんご"

template_vars = {"name" : name_var,}

html_out = template.render(template_vars)

font_config = FontConfiguration()

css = CSS(string='''
                 @font-face 
                 {
                  font-family: 'Noto Sans JP';
                  src: url('NotoSansJP-Regular.otf');
                 }
                 @page 
                 {
                  font-family: 'Noto Sans JP';
                  background-color: white;
                 }
                 ''', font_config=font_config) 

HTML(string=html_out).write_png("test.png",stylesheets=[css],font_config=font_config)

Экспортированный png показывает так: test.png

html_out выглядит так:

<!DOCTYPE html>
<html>

<head lang="ja">
    <meta charset="utf-8">
    <title>test</title>
</head>

<body>
    <h4>にほんご</h4>
</body>

</html>

Чтоя делаю не так?Я благодарен за любую помощь.

ОБНОВЛЕНИЕ :

Я обнаружил, что есть проблема на стороне Google Colab.Но я не знаю, как работает среда Colab.Любые советы?

...