将.ttf字体包含在使用Flying Saucer和Spring-Boot生成的pdf中

时间:2018-04-02 13:58:39

标签: java spring-boot flying-saucer

我只设法生成包含.ttf字体的pdf,前提是我在index.html中提供了绝对路径,如下所示:

        @font-face {
        font-family: Asap-Regular;
        src: url("/home/user/Desktop/Asap-Regular.ttf");
        -fs-pdf-font-embed: embed;
        -fs-pdf-font-encoding: Identity-H;
        }

我想要实现的是将.ttf字体集成为相对路径。我也尝试过这样的java代码集成:

renderer.getFontResolver().addFont(("path/Asap-Bold.ttf"),
                                       "Asap-Bold", "Identity-H", true, null);

它没有用......

1 个答案:

答案 0 :(得分:2)

调试飞碟一段时间后似乎:

_sharedContext.setBaseURL(url);

需要指向.ttf文件路径(在我的例子中是资源目录)。要从sharedContext设置url,您需要调用:

renderer.setDocumentFromString(html, String.valueOf(resourceLoader.getResource("classpath:fonts/").getURI()));