只有当我在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()));
也可以:
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("templates/yourfont.ttf", true);
我不知道是不是只有我这样,但我没有使用基本路径,它仍然有效。我正在使用 Spring Boot(为了类加载)。