【问题标题】:itext html to pdf with multiple fonts具有多种字体的itext html到pdf
【发布时间】:2019-09-27 04:52:53
【问题描述】:

我使用 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

【问题讨论】:

    标签: java pdf itext itext7 html-to-pdf


    【解决方案1】:

    最终使用的字体由字体选择机制选择,并取决于许多因素。如果您没有在 HTML 中以任何方式明确指定您的字体系列名称为 Cardo,那么默认使用 Times

    如果您只想使用您添加到FontProvider 的字体,那么您应该使用另一个DefaultFontProvider 的构造函数,因为默认的构造函数添加了标准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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多