最近遇到activiti流程图乱码问题,刚开始按照网上的做法去activiti.xml文件中加了如下配置:
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="activityFontName" value="宋体"/>
<property name="labelFontName" value="宋体"/>
</bean>
结果生成的流程图片乱码倒是解决了,但在跟踪流程节点时生成的流程图任然是乱码,查阅了咖啡兔的教程没找到突破口,于是又在网上找了很久,终于在一篇帖子的评论中找到了解决方法:
在生成带跟踪节点的流程图片方法中把原来的:
ProcessDiagramGenerator diagramGenerator = processEngineConfiguration.getProcessDiagramGenerator();
InputStream imageStream = diagramGenerator.generateDiagram(bpmnModel, "png", activeActivityIds);
改成如下代码:
// 得到图片输出流(这样加可防止生成的流程图片乱码)
InputStream imageStream = processEngine.getProcessEngineConfiguration().getProcessDiagramGenerator()
.generateDiagram(bpmnModel, "png", activeActivityIds, new ArrayList(),
processEngineConfiguration.getActivityFontName(),
processEngineConfiguration.getLabelFontName(), null, 1.0);
如果以上方法都无法解决你的乱码问题,那就请检查你的tomcat->conf->server.xml文件中的
位置加入:URIEncoding="UTF-8"
当上面的方法都用了流程图片中的文字还是乱码,那就再检查哈你jdk安装目录即java->jre->lib->fonts->fallback文件夹内有没有你设置的字体(上面我们设置的是”宋体“,宋体的字体文件是simsun.ttc),如果没有的话就去下载或去windows/Fonts文件夹下考。如果在jre下连对应的文件夹都没得的话,那就挨个建吧。忙完后别忘了重启服务器和重新部署流程文件,要是还乱码那就继续找解决方案吧,我是没招了。