将 .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()));
只有在 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()));