为什么Pango有时使用后备字体?

时间:2018-06-12 08:22:32

标签: python docker ubuntu-14.04 pango fontconfig

我创建了一个生成图像的Python应用程序 这些图像的一部分是文本。本文大部分时间都使用自定义字体。

此应用程序包含以下组件:

  • 使用Python 3.4的Ubuntu 14.04 Docker容器
  • 开罗创建图片
  • Pango for font rendering
  • Fontconfig for font management

dpkg为相关包提供以下版本:

    Name                                   Version                                    Architecture Description
ii  gir1.2-pango-1.0                       1.36.3-1ubuntu1.1                          amd64        Layout and rendering of internationalized text - gir bindings
ii  libpango-1.0-0:amd64                   1.36.3-1ubuntu1.1                          amd64        Layout and rendering of internationalized text
ii  libcairo-gobject2:amd64                1.13.0~20140204-0ubuntu1.1                 amd64        The Cairo 2D vector graphics library (GObject library)
ii  python3-gi-cairo                       3.12.0-1ubuntu1                            amd64        Python 3 Cairo bindings for the GObject library
ii  gobject-introspection                  1.40.0-1ubuntu0.2                          amd64        Generate interface introspection data for GObject libraries
ii  python3-gi                             3.12.0-1ubuntu1                            amd64        Python 3 bindings for gobject-introspection libraries

应用程序作为服务器运行,并在获得"生成请求时执行以下操作"对于带有文字的图像:

  1. 从远程位置下载字体文件
  2. 将其放入fontconfig已知的包含字体
  3. 的目录中
  4. 运行fc-list命令
  5. 将Pango与Cairo一起使用,使用下载的字体生成图像。
  6. 如果字体文件已存在,则不会再次下载,因此跳过步骤1-3。

    大部分时间都可以使用。 然而,有时甚至一天都没有出错。 Pango不使用下载的字体文件,但会回退到默认字体 临时修复只是删除并再次启动容器(甚至重新启动python进程工作)。 但是,这只是一种解决方法,并不能解决实际问题。

    对我来说,困难的部分是复制这个bug以便修复它。是否有任何人有更多使用文本的经验可以帮助我解决这个问题?

0 个答案:

没有答案