仅缺少数字Weasyprint PDF

时间:2019-02-15 00:07:51

标签: python-3.x django-views weasyprint

就是这样,我在Mac Mojave上使用weasyprint-44,python 3.6和Cairo等版本。 PDF可以以其他方式很好地呈现-符号和字母很好-只是没有数字?

太奇怪了。

有人能指出我正确的方向吗?

3 个答案:

答案 0 :(得分:3)

我能够通过从字体家族CSS声明中删除字体"Segoe UI Emoji"来解决此问题。从CSS删除此字体后,数字再次开始出现。

该错误似乎始于对macOS 10.14.4的一些更改。

答案 1 :(得分:2)

在Sierra(10.12)和High Sierra(10.13)以及Mojave(10.14)上也会发生相同的问题,尤其是在使用Bootstrap 4时。

默认的body定义如下:

  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";

Apple Color EmojiSegoe UI Emojii都可能导致最终PDF无法正确显示数字。

删除所有提及的Emojii字体会使数字重新出现。

注意:数字仍然存在,您可以复制和粘贴它们,但是实际上它们是不可见的。

答案 2 :(得分:0)

我在Mac(Mojave 10.14.5)上存在相同的问题。我设法通过定义用于打印的其他字体系列来解决此问题。就我而言,我使用:

const aggregate = await Property.aggregate([
    {
      $lookup: {
        from: 'cities',
        localField: 'city',
        foreignField: '_id',
        as: 'test',
        pipeline: [{ $match: { name: 'Caldas' } }]
      }
    },
    {
      $match: { test: { $ne: [] } }
    }
  ]);

所有内容都能很好地打印出来。