我使用 addDirectory() 方法一次添加两种 Cardo 字体:
public static final String FONTS = "src/main/resources/fonts/";
public void createPdf(String src, String fonts, String dest) throws IOException {
ConverterProperties properties = new ConverterProperties();
FontProvider fontProvider = new DefaultFontProvider();
fontProvider.addDirectory(fonts);
properties.setFontProvider(fontProvider);
HtmlConverter.convertToPdf(new File(src), new File(dest), properties);
}
不幸的是,使用 Times 字体代替 Cardo 或 Cardo-Bold。我也尝试过其他 Arial 字体,但它也不起作用
我正在使用 iText 7.1.6 和 pdfHTML 2.1.3
最终使用的字体由字体选择机制选择,取决于多种因素。如果您没有Cardo
在 HTML 中以任何方式明确指定您的字体系列名称,那么Times
默认情况下会使用它。
如果您只想使用您添加的字体,FontProvider
那么您应该使用 anotherDefaultFontProvider
的构造函数,因为默认的构造函数添加了标准 PDF 字体和 pdfHTML 附带的几种字体。使用另一个构造函数允许您关闭在后台添加这些字体:
// Passing false three times means not loading standard PDF fonts, fonts shipped with pdfHTML and system fonts
FontProvider fontProvider = new DefaultFontProvider(false, false, false);
fontProvider.addDirectory(fonts);
properties.setFontProvider(fontProvider);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句