提问者:小点点

在飞碟PDF生成器中使用主字体和回退字体


我很难让飞碟使用字形/字符的辅助字体,这些字形/字符不在我的主字体中。

我用于此目的的Java代码或多或少是:

    String result = getPrintHtmlContent(urlString);
    result = CharacterConverter.replaceInvalidCharacters(result);

    ITextRenderer renderer = new ITextRenderer();
    renderer.getFontResolver();
    renderer.getFontResolver().addFont(FONTS_DIR_PATH + "ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    renderer.getFontResolver().addFont(FONTS_DIR_PATH + "droidsans/DroidSans.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    renderer.getFontResolver().addFont(FONTS_DIR_PATH + "droidsans/DroidSansBold.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

    renderer.setDocumentFromString(result, "http://" + frontendHost + ":" + frontendPort + frontendContextRoot);
    renderer.layout();

    renderer.createPDF(os);

和css:

    body {
      font-family: "Droid Sans", "Arial Unicode MS";
    }

我还使用@font-face规则将字体包含在css中。

我能够让它单独使用两种字体,所以飞碟找到字体或css无法正确渲染似乎没有问题。

如果我在另一方面,如上所述,并尝试使用两种字体的输出PDF只使用Droid Sans…

有没有可能在飞碟中使用“后备字体”,就像在网站上一样?


共1个答案

匿名用户

我在飞碟开发者社区上问了同样的问题,得到了回复:

https://groups.google.com/forum/#!topic/flying-saucer-dev/5p00ISwnxiw

简而言之,答案是否定的,不可能使用二级字体。