我不想在项目目录中下载字体。
对于网站,我从googleapis加载字体,这一切都很好。
现在,当我生成PDF时,我在样式中添加了font-face并且没有加载它们。
这是我的代码:
@font-face {
font-family: 'Hind Siliguri';
src: url(https://fonts.gstatic.com/s/hindsiliguri/v4/ijwTs5juQtsyLLR5jN4cxBEoTI7ax8s3JimW3w.woff2);
-fs-pdf-font-embed: embed;
-fs-pdf-font-encoding: Identity-H;
}
我的第一个问题:飞碟是否只支持 .ttf 格式字体?
如何使用当前字体管理css?
是否需要在JAVA代码中添加fontResolver.addFont()?
TIA!
答案 0 :(得分:0)
飞碟基于一个过时的iText版本(实际上,a version that should no longer be used in commercial applications)。毋庸置疑,iText的作者并不认可Flying Saucer。
Flying Saucer使用的旧版iText不支持Web Open Font Format(WOFF)字体。仅在iText 7中引入了对此类字体的支持.iText 7附带了一个名为pdfHTML的加载项,可用于将HTML转换为PDF;有关详细信息,请参阅HTML to PDF tutorial。如果你转到本教程的chapter 6,你会发现一些涉及WOFF字体的例子。
例如,如果你的CSS文件中有这个:
@font-face {
font-family: "SourceSerifPro-Regular";
src: url("fonts/SourceSerifPro-Regular.otf.woff") format("woff");
}
.regular {
font-family: "SourceSerifPro-Regular";
}
您可以拥有以下HTML:
<td class="regular">quick brown fox jumps over the lazy dog</td>
然后只需使用此代码:
public void createPdf(String src, String dest) throws IOException {
HtmlConverter.convertToPdf(new File(src), new File(dest));
}
将下载正确的字体。请注意,使用此方法时,HTML到PDF转换过程可能会很慢。这些字体是通过网络下载的,这通常会减慢速度。