最近研究Activiti流程,实现流程图高亮追踪是出现中文乱码问题,找了很多方法,现在把我最后的解决方法提供给大家。
1.在Spring配置文件中的
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
中加入两行代码:
<property name="activityFontName" value="宋体"/>
<property name="labelFontName" value="宋体"/>
2.生成流程图流的方法
/**
* 获得流程图的流
* @param processInstanceId
* @return
*/
@SuppressWarnings("unused")
private InputStream getDiagram(String processInstanceId){
//查询流程实例
ProcessInstance pi =this.runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
BpmnModel bpmnModel = this.repositoryService.getBpmnModel(pi.getProcessDefinitionId());
//得到正在执行的环节
List<String> activeIds = this.runtimeService.getActiveActivityIds(pi.getId());
InputStream is = new DefaultProcessDiagramGenerator().generateDiagram(
bpmnModel, "png",
activeIds, Collections.<String>emptyList(),
processEngine.getProcessEngineConfiguration().getActivityFontName(),
processEngine.getProcessEngineConfiguration().getLabelFontName(),
null, 1.0);
return is;
}
这样就能解决中文乱码问题了。