在Java中使用Apache FOP的新字体

Jon*_*Jon 6 java pdf xslt apache-fop

我必须国际化一个应用程序,因此必须让用户选择我将在运行时创建的PDF字体.我希望能够使用用户系统显示字体选择列表

GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
Run Code Online (Sandbox Code Playgroud)

这工作正常,为获得字体,但随后似乎我通过一些跳铁圈来获取字体发挥好与FOP,作为概述这里.我可以按照他们概述的所有说明进行操作,但我不确定如何获取字体的位置以便运行TTFReader.

  1. 有谁知道如何列出java使用getAllFonts()命令收集的每种字体的路径?
  2. 在PDF中嵌入字体是个好主意吗?例如,Arial Unicode MS TFF文件大约为30 MB.
  3. 这是使用FOP和XSL创建国际化pdf的唯一方法吗?

Jer*_*rki 7

最后一个版本(FOP 0.95)对字体配置进行了重大改进,所以请查阅该文档以获得更简单的方法:http: //xmlgraphics.apache.org/fop/0.95/fonts.html#basics

不再需要XML字体度量文件.

对你的问题:

  1. 这不可能.Java不会向您提供该信息.这也是FOP拥有自己的字体子系统的部分原因.
  2. 是的,它实际上是推荐的.请注意,FOP支持字体子集,因此只需在PDF中嵌入所需的字形.
  3. 不明白你的意思.有了上述信息并升级到最新版本应该足够简单.