1.取得流程图的核心代码
public void viewNode(HttpServletResponse response,String taskId) throws IOException{
try {
/**流程实例**/
ProcessInstance processInstance = activitiServices.getProcessInstanceByTaskId(taskId);
BpmnModel bpmnModel = activitiServices.getRepositoryService()
.getBpmnModel(processInstance.getProcessDefinitionId());
List<String> activeActivityIds = activitiServices.getRuntimeService().getActiveActivityIds(processInstance.getId());
ProcessEngineImpl defaultProcessEngine = (ProcessEngineImpl) ProcessEngines.getDefaultProcessEngine();
Context.setProcessEngineConfiguration(defaultProcessEngine.getProcessEngineConfiguration());
/**得到图片输出流**/
InputStream imageStream = ProcessDiagramGenerator.generateDiagram(bpmnModel, "png", activeActivityIds);
/**得到图片输出流**/
OutputStream out = response.getOutputStream();
byte[] b = new byte[1024];
int len = -1;
while ((len = imageStream.read(b, 0, 1024)) != -1) {
out.write(b, 0, len);
}
imageStream.close();
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
2.解决乱码方法,如下(流程引擎配置属性中加入)
<!-- 节点乱码问题配置 -->
<property name="activityFontName" value="微软雅黑"/>
<property name="labelFontName" value="微软雅黑"/>
3.流程高亮结果如下图