集智平台报表中查看系统字体的方法

由于操作系统的差异,不同的操作系统中安装的字体可能不相同,所以制作报表时如果采用了一些系统中没有的字体,在页面上展现报表的时候就可能出现乱码的问题,这样的问题排查起很麻烦,需要比较开发环境和生产环境里面字体的是否存在着一定的差异。

如果能有一种办法能将系统中安装好的字体都在页面上展现出来,那么系统中支持的字体就一目了然了,也能很顺利的发现生产环境与开发环境相比缺少了哪些字体,也就能让客户更方便的修改掉生产环境没有的字体,或者同步生产环境和开发环境的字体,大大的减少了工作量。

实际上java本身就用这样的方法,能够获取到系统中安装的字体列表,这样采取这种方法就可以很容易的看到当前系统说支持的字体了。获取系统中字体列表的java代码如下:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();

String[] fontNames= ge.getAvailableFontFamilyNames();

for(int i=0;i<fontNames.length;i++){

System.out.println(“<li>”+fontNames[i]);

}

基于上面的代码可以写一张jsp,放到客户的应用中,直接访问这张jsp就可以检测到系统中安装的所有字体了,jsp的代码如下:

<%@ page language=”java” pageEncoding=”GBK”%>

<jsp:directive.page import=”java.awt.GraphicsEnvironment”/>

<%

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();

String[] fontNames= ge.getAvailableFontFamilyNames();

%>

<!– 列出当前服务器安装的字体 –>

<html>

<head>

</head>

<body style=”font-size: 14px”>

当前Java环境支持的字体列表

<dir>

<%

for(int i=0;i<fontNames.length;i++)

out.println(“<li>”+fontNames[i]);

%>

</dir>

</body>

</html>

<!–列出java环境的字体,当发现统计图里面的字体不正确时,可通过这个jsp检测系统中是否有统计图中使用的字体–>

保存上面的代码为enum_font.jsp,将上面的jsp放到应用中,直接访问这个jsp,可以看到如下图的效果:

这样就可以很方便的查看当前系统中支持的编码格式了。