Apache FOP:在PDF中显示UTF-8字符(没有嵌入?)

时间:2009-08-19 20:43:18

标签: apache pdf utf-8 fonts apache-fop

我正在尝试使用FOP导出带有UTF-8字符的PDF,最好不需要嵌入字体。
以下代码:

<fo:block font="10pt Helvetica" text-align="justify" space-after="10pt" space-before="8pt" keep-with-previous="auto" keep-together.within-page="auto"> 
  <fo:block font-weight="bold" color="gray">Summary</fo:block>
  <fo:block text-indent="1em" keep-with-previous="always">
    <fo:block text-indent="1em" space-before="4pt">
      <fo:block text-indent="1em" space-before="4pt">私はガラスを食べられます。それは私を傷つけません
      </fo:block>
    </fo:block>
  </fo:block>
</fo:block>

在PDF中生成####################。我知道这个问题:http://xmlgraphics.apache.org/fop/faq.html#pdf-characters

当我进入Document Properties-&gt; Fonts时,Helvetica字体列为'Encoding:ANSI'。有没有办法改变这个?

如果我正在嵌入,那么在没有访问Helvetica.ttf的情况下最好的方法是什么?我尝试过使用DejaVuSans,但我最终用方块代替#符号。

请注意,这不是从命令行一次性使用(这将是一个开始),而是对现有应用程序的扩展。我试图在没有太多复杂性的情况下支持UTF-8字符。

1 个答案:

答案 0 :(得分:7)

AFAICT,PDF specification中包含的字体仅包含ISO-Latin-1中的字符。如果你想要一个超出附件D:字符集和编码中定义的字符的字符,那么你应该嵌入字体。