如何在 Dash 中使用本地字体(.otf 文件)Python

How to use a local font (.otf file) in Dash Python

我目前正在做一个项目,我必须在 Dash 应用程序中包含自定义字体。我收到了 .otf 文件,但我不知道如何使用它。找了半天希望大家帮帮我

import dash
import dash_html_components as html

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app             = dash.Dash(__name__, prevent_initial_callbacks=True, external_stylesheets=external_stylesheets)

app.layout = html.Div([
                html.P('Hello world'),
            ])

if __name__ == "__main__":
    app.run_server(debug=True,port=8050)

.otf 文件位于文件夹“/assets/fonts”中。我看过一些关于这个主题的帖子,我应该在其中创建一个 .css 文件并将其添加到 external_stylesheets,但我不确定该怎么做,即使它会起作用。

无论如何,先谢谢了!

这真的很简单!你在正确的轨道上。正如您所说,您所要做的就是使用位于本地(相对于您的 app.py 文件;即同一目录)“assets”目录中的 .css 文件。

下面我设置了以下基本的应用程序文件结构:

.
|-- app.py
`-- assets
    |-- FreeSerifItalic-KErA.otf
    `-- custom.css

1 directory, 3 files

我在 .assets/ 文件夹下有一个要使用的本地 .otf 字体文件。 以下是 custom.css 文件的内容,也位于我的 assets/ 文件夹下:

@font-face {
    font-family: 'FreeSerif-Italic'; 
    src: url('FreeSerifItalic-KErA.otf');
}

body {
    margin: 10%;
    overflow-x: hidden;
    text-align: center;
    font-family: "FreeSerif-Italic";
    font-size: 2.5rem;
}

我使用 @font-face CSS3 功能正确导入字体以供使用,方法是为其提供参考名称“FreeSerif-Italic”。我将我的应用程序的 body 元素定义为默认为所有文本使用此字体(您不必将字体用于 body 元素,您可以将它用于您想要的任何 html 元素!; 您还可以在 app.py Dash 代码中使用 in 使用任何 dash.html 组件的 style 参数。

这里我有一个非常简单的 app.py 文件,(几乎)就像您的示例:

import dash
from dash import html

app = dash.Dash(__name__)

app.layout = html.Div([html.P("Hello world")])

if __name__ == "__main__":
    app.run_server(debug=True, dev_tools_hot_reload=True)

当 运行 ('$ python app.py') 时,给出: