如何将自定义字体与 Weasyprint 一起用于非 ascii 字符

How to use custom font with Weasyprint for non-ascii characters

我有一些日文字符串需要使用 weasyprint 库转换为 PDF,目前日文字符显示为方框,所以我猜这是字体问题,我的问题是代码在我的本地运行良好OS,但在 Heroku 上它显示的是盒子,当我无法访问系统时(在我的例子中是 Heroku),我该如何安装和使用 weasyprint 的自定义字体

下面是我的代码

from weasyprint import HTML, CSS
from weasyprint.fonts import FontConfiguration

font_config = FontConfiguration()
html = HTML(string='<h1>Title here 自家製フォント工房</h1>')
css = CSS(string='''''', font_config=font_config)

html.write_pdf(
    'report.pdf', stylesheets=[css],
    font_config=font_config)

通过在文件夹 .fonts 中添加字体 .ttf 文件找到解决方案,Heoku 将使用此文件夹查找字体。

然后在 css 我会说

@font-face {
  font-family: 'Hannari-Regular';
  src: local('Hannari-Regular')
}

其中 Hannari-Regular 是字体文件的名称