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

Include .ttf font into pdf generated with Flying Saucer and Spring-Boot

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

        @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);

它没有用...

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

_sharedContext.setBaseURL(url);

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

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