fop pdf generation with font awesome icon

问题描述 投票:3回答:1

请帮助我,我对fop pdf生成有两个疑问

  1. 如何在基于FOP的pdf生成中包含font-awesome图标或utf字符
  2. 根据值应用颜色。

请帮我

任何建议都被接受。

java pdf-generation apache-fop
1个回答
3
投票

你可以像任何其他字体一样使用Font Awesome

  1. 在FO文件中,在包含你需要的font-familyfo:block(或fo:inline,...)上设置Unicode entities for the icons属性
  2. 创建/编辑FOP配置文件以将font-family值映射到Font Awesome发行版中包含的TrueType字体文件
  3. 告诉FOP使用您的配置文件

至于颜色,您可以使用属性colorbackground-color来设置字形字体颜色和背景颜色。

一个例子,用FOP 2.0测试:

FO片段

<fo:block>
    Icons:
    <fo:inline font-family="FontAwesome">
        &#xf13d; &#xf242; &#xf02d; &#xf27b;
    </fo:inline>
</fo:block>
<fo:block>
    Coloured icons:
    <fo:inline font-family="FontAwesome" color="#AA0000">
        &#xf13d; &#xf242; &#xf02d; &#xf27b;
    </fo:inline>
</fo:block>
<fo:block>
    Coloured icons with background:
    <fo:inline font-family="FontAwesome" color="#FFFFFF" background-color="#AA0000">
        &#xf13d; &#xf242; &#xf02d; &#xf27b;
    </fo:inline>
</fo:block>

FOP配置片段:

<renderer mime="application/pdf">
  ...
  <fonts>
    <font embed-url="/Users/furini/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf">
      <font-triplet name="FontAwesome" style="normal" weight="normal"/>
    </font>
    ...
  </fonts>
  ...
</renderer>

输出:

PDF output screenshot

请注意,您会收到警告,但没有什么可担心的(它只是告诉您Font Awesome没有默认连字符的字形,但您不会使用带图标的连字符!):

25-ott-2015 13.31.38 org.apache.fop.fo.properties.CommonHyphenation getHyphChar
WARNING: Substituted specified hyphenation character (0x2d) with 0x20 because the font doesn't have the specified hyphenation character: FontAwesome,normal,400

this old answer of mine提供了有关字体配置和错误/警告的更多详细信息)

(披露:我是FOP开发人员,但现在不是很活跃)

© www.soinside.com 2019 - 2024. All rights reserved.