Activiti5.16.1 高亮流程图乱码

wszp519 发布于 2014/11/13 14:57
阅读 2K+
收藏 1

@xyz20003 你好,想跟你请教个问题:

你在https://github.com/xuhuisheng/lemon/blob/master/src/main/java/com/mossle/bpm/cmd/ProcessDefinitionDiagramCmd.java的代码中public InputStream execute(CommandContext commandContext)的CommandContext commandContext是什么东西来的?

我现在用Activiti5.16.1版本,但是带跟踪的高亮流程图,中文显示乱码···纠结中,还请您指点一二,谢谢!

加载中
0
x
xyz20003

#4 生成的流程图汉字乱码怎么解决?

问题原因:引擎默认使用Arie字体生成图片中的问题,这个字体不支持中文,所以导致乱码

解决方法:设置ProcessEngineConfiguration中的属性,注意版本必须是5.13或以上版本,老版本不支持labelFontName

<property name="activityFontName" value="宋体"/>
<property name="labelFontName" value="宋体"/>

参考https://github.com/xuhuisheng/activiti-demo/blob/master/src/main/resources/spring/applicationContext-activiti.xml

衍生问题:设置了字体之后,图片依然乱码,有两种可能:

  • 没有重新部署流程,所以没有重新使用新配置生成图片。
  • 没有使用cmd的方式包装生成图片的方法,导致配置没有启用

通过封装cmd的方式调用生成图片的方法:

https://github.com/xuhuisheng/activiti-demo/blob/master/src/main/java/com/mossle/bpm/cmd/ProcessDefinitionDiagramCmd.java

如果不想用优雅的封装cmd的方法,只能手工初始化Context了。

Context.setProcessEngineConfiguration(processEngine.getProcessEngineConfiguration());
0
x
xyz20003
Command命令模式:所有api接口的功能,在引擎的实现类中,都封装成了Command命令,再交给统一的 CommandExecutor执行。使用Command命令模式的好处时,所有功能都通过统一入口进入,所以可以统一管理,为后续的 Interceptor拦截器模式的应用做好了准备。
返回顶部
顶部