Weasyprint字体问题导致所有字符被框替换

时间:2018-03-14 18:47:28

标签: html pdf weasyprint

我已经使用pip install weasyprint安装了weasyprint,根据我的理解,我应该安装必要的依赖项。

不知何故,weasyprint生成的PDF输出不包含任何字体,所有字符都被框替换。

打开文档时,我可以看到没有嵌入字体。我还可以通过在终端中输入python -m weasyprint.navigator并访问其中一个示例站点来重现该问题。下面是我的weasyprint安装提供的维基百科主页。

Wikipedia homepage rendered with weasyprint

可能导致此问题的原因是什么?我该如何解决?

4 个答案:

答案 0 :(得分:0)

我遇到了完全相同的问题,谷歌将我引到了这个话题。我想确认问题出在我的Linux Docker映像中缺少字体。

在系统中安装缺少的字体。在我的操作系统上,没有安装任何字体。

答案 1 :(得分:0)

我遇到了同样的问题,我认为缺少字体导致了此问题,最后我在/usr/share/fonts/文件夹中添加了一种字体来解决该问题。

答案 2 :(得分:0)

我使用fc-*命令行工具在MacOS上解决了此问题。您可以使用brew install fontconfig安装它们。

  1. 运行fc-list列出系统上安装的字体
  2. 运行fc-cache -v,查看fontconfig在系统上寻找字体的地方
  3. 选择这些位置之一(如果不存在,则添加它)并在那里复制字体。
# note: change `alex` to your user name
sudo mkdir /Users/alex/.fonts
sudo cp /Library/Fonts/Microsoft\ Sans\ Serif.ttf /Users/alex/.fonts
  1. 使用fc-cache -vf
  2. 重新生成缓存
  3. 通过运行fc-list
  4. 检查是否已安装字体。
  5. PDF现在应该可以正确生成

答案 3 :(得分:0)

似乎问题出在字体上。可能您没有在服务器中安装正确的字体。在linux(ubuntu)中,您可以运行此命令以使用此命令安装推荐的字体。

sudo apt-get install texlive-fonts-recommended

要管理字体,请使用:

sudo apt-get install fontconfig