集智平台报表中查看系统字体的方法
由于操作系统的差异,不同的操作系统中安装的字体可能不相同,所以制作报表时如果采用了一些系统中没有的字体,在页面上展现报表的时候就可能出现乱码的问题,这样的问题排查起很麻烦,需要比较开发环境和生产环境里面字体的是否存在着一定的差异。
如果能有一种办法能将系统中安装好的字体都在页面上展现出来,那么系统中支持的字体就一目了然了,也能很顺利的发现生产环境与开发环境相比缺少了哪些字体,也就能让客户更方便的修改掉生产环境没有的字体,或者同步生产环境和开发环境的字体,大大的减少了工作量。
实际上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,可以看到如下图的效果:
这样就可以很方便的查看当前系统中支持的编码格式了。