-
默认最简单的安装centos7,一般中文字体都是不全的,这时如果访问flowable的流程跟踪图会出现
-
主要原理是flowable是在服务器端,用awt组件的Graphics2D画出,再通过图片返回到浏览器的,以下是flowable的源码,对应的类org.flowable.image.impl.DefaultProcessDiagramCanvas,这个类的模块是flowable-image-generator
解决的办法,第一种方法是安装好centos7的中文字体;第二种jvm启动加载中文字体,和指定flowable绘图的字体。
以下是在jvm下给flowable的流程跟踪图指定字体
默认情况下,flowable是和springboot部署的,所有我这边用到的是spring配置
@Configuration
public class MyFlowableConfig implements EngineConfigurationConfigurer<SpringProcessEngineConfiguration> {
@Override
public void configure(SpringProcessEngineConfiguration engineConfiguration) {
engineConfiguration.setActivityFontName("WenQuanYi Micro Hei");
engineConfiguration.setLabelFontName("WenQuanYi Micro Hei");
engineConfiguration.setAnnotationFontName("WenQuanYi Micro Hei");
}
}
- 还有在启动spring boot的web应用时,还需要加载自己指定的字体,我这边用到的是linuxmint下的文泉驿微米黑字体/usr/share/fonts/truetype/wqy/wqy-microhei.ttc
@Component
public class MyLoadFont4Flowable {
@PostConstruct
protected void init() {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont("/你的字体路径/wqy-microhei.ttc");
}
}
-
当启动应用再看时
如果在window下部署flowable出现显示跟踪图不正确时,只要设置为宋体就可以了
@Configuration
public class MyFlowableConfig implements EngineConfigurationConfigurer<SpringProcessEngineConfiguration> {
@Override
public void configure(SpringProcessEngineConfiguration engineConfiguration) {
engineConfiguration.setActivityFontName("宋体");
engineConfiguration.setLabelFontName("宋体");
engineConfiguration.setAnnotationFontName("宋体");
}
}
主要是flowable默认的字体是Arial
org.flowable.image.impl.DefaultProcessDiagramCanvas指定字体的源码如下