如何使用Apache fop显示Unicode字符?显示“?”而不是角色。

时间:2011-11-02 15:27:17

标签: xml xsl-fo apache-fop

我一直在尝试插入Unicode字符∇或▽,因此它显示在Apache FOP生成的PDF中。

这是我到目前为止所做的:

  1. 首先,您必须根据此基本帮助Apache XSL-FO Input了解正确的Unicode代码点以表示字符,Unicode代码点可以在列表中的unicode.org中找到数学运算符。代码是∇∇NABLA,我也可以使用▽▽一个向下的三角形。

  2. 找到正确的代码后,我必须选择包含必要字形的字体,并且Adobe PostScript和PDF规范指定Base-14 Font Character Mapping,每个PostScript解释器和PDF阅读器必须可用,所以我搜索列表和字体符号包含∇&#x2207,(没有字体包含▽▽丢弃)

  3. 之后搜索我认为我应该在xsl中使用的结果代码:fo是:

     <fo:block font-family="Symbol">
     &#x2207;
     </fo:block>
    
  4. 问题是当它生成PDF时,结果不是我所期望的“∇”,而是它显示的是“?”,我读到当它无法显示通常显示的字符时“#”,但我的代码显示“?”。

  5. 我正在使用Apache fop 0.95,我怀疑是导致问题的版本,我应该更新到1.0,但目前这是生产中使用的版本,团队负责人说这很难目前升级它。

  6. 那就是问题,除了版本之外还有其他什么?可能是我忘记做的dummie吗? 如何使用Apache fop显示Unicode字符?

1 个答案:

答案 0 :(得分:2)

尝试使用符号的十进制值(我认为您不需要Symbol字体系列):     

&#8711;

对于需要了解特殊符号值的每个人,您都可以找到它们here