如何在pywebview中使用自定义字体

How to use a custom font in pywebview

我想在 pywebview 应用程序中使用自定义字体,但在添加 CSS 后,只使用备用字体。字体文件位于 /css/fonts 目录中,但相对路径或绝对路径均无效。

我的CSS:

@font-face {
  font-family: 'Retro Gaming';
  src: url('fonts/retro_gaming.ttf') format('truetype'),
    url('fonts/retro_gaming-webfont.woff2') format('woff2'),
    url('fonts/retro_gaming-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

body {
  font-family: 'Courier New', Courier, monospace;
}

.menu {
  font-family: 'Retro Gaming', Courier, monospace;
}

我的HTML:

<html>

<body>
  <p class="menu">This font should be Retro Gaming</p>
  <p>This font should be Courier New</p>
</body>

</html>

我在启动应用程序时看到的消息是:

127.0.0.1 - - [24/Dec/2020 18:13:11] "GET / HTTP/1.1" 200 200
127.0.0.1 - - [24/Dec/2020 18:13:11] "GET /fonts/retro_gaming.ttf HTTP/1.1" 404 42
127.0.0.1 - - [24/Dec/2020 18:13:11] "GET /fonts/retro_gaming-webfont.woff2 HTTP/1.1" 404 52
127.0.0.1 - - [24/Dec/2020 18:13:11] "GET /fonts/retro_gaming-webfont.woff HTTP/1.1" 404 51

编辑: 带有字体文件路径的图像:

如果您的 html 代码在另一个文件中并且 css 也像这样,请尝试在您的位置文件之前添加 ../ ../fonts/retro_gaming.ttf 当我喜欢时它对我有用你的道路。

好的,我明白了。通过将字体文件放在 html 所在的同一目录(在我的例子中,assets),我工作得很好。您甚至可以在其中为字体创建子目录。

编辑:另一种选择是避免将样式加载到 python 代码内的 window 并直接从 HTML 执行。