kuk*_*kis 12 java fonts birt awt
我通过调用列出了系统中所有可用的字体
GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] fontNames = graphicsEnvironment.getAllFonts();
for (Font s : fontNames) {
System.out.println(s);
}
Run Code Online (Sandbox Code Playgroud)
在控制台上我可以看到很多字体,但列表看起来非常不完整.例如:我的操作系统已安装"系统"字体,但在输出中我看不到该字体:
...
java.awt.Font[family=Sylfaen,name=Sylfaen,style=plain,size=1]
java.awt.Font[family=Symbol,name=Symbol,style=plain,size=1]
java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=1]
...
Run Code Online (Sandbox Code Playgroud)
已安装的字体(对不起波兰操作系统):

这是为什么?
另一件事是在写字板中我可以看到"系统"字体.但是在MS Word 2010中,"系统"字体不可用.
问题不在于这种特殊的"系统"字体.Java中安装了几种但缺少的字体.
编辑:我为什么要问?我的应用程序使用BIRT Report Designer生成带有报告模板的.rpt文件.接下来,我使用这些文件来渲染Swing组件,如JLabel,JTextField等.主要问题是:用户可以使用使用Java Swing无法处理的字体的字段生成报告.
BIRT生成的示例xml文件的一部分:
<property name="fieldName">Blablabla{Label}</property>
<property name="fontFamily">"System"</property>
<property name="fontSize">16pt</property>
Run Code Online (Sandbox Code Playgroud)
我们的客户要求指定生成的报告和Java swing组件之间的字体不能有所不同.
我想要做的是处理Java中的所有系统字体或排除java无法处理的BIRT字体.
JVM 不一定使用您系统上安装的字体,它附带有自己的字体,您可以在
JAVA_HOME/jre/lib/fonts
为了在 JVM 中使用字体,您需要创建字体并将它们添加到上面的目录中,或者将新字体的目录添加到类路径中。
或者,您可以将字体与 jar 存档文件一起打包,在此处下载字体
或 Microsoft true Type 字体。
小智 5
你可以尝试一下吗?并确保你使用的是最新的 JDK 7
public static void main(String[] args) {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontFamilies = ge.getAvailableFontFamilyNames();
for (String ff : fontFamilies) {
System.out.println(ff);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6252 次 |
| 最近记录: |