请问bpmn-js应该如何设置画布不可编辑拖拽,以及转图片方便显示历史呢
来源:7-18 高亮历史流程渲染接口(下)
一米粒
2020-12-16
RT,项目需要实时在界面开出一小块查看历史流程图,想把cavans内的流程图缩放成图片展示,该如何实现呢
写回答
1回答
-
汪汪对
2020-12-16
主要代码
public InputStream getProcessDiagram(String processInstanceId) { ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() .processInstanceId(processInstanceId).singleResult(); // null check if (processInstance != null) { // get process model BpmnModel model = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId()); if (model != null && model.getLocationMap().size() > 0) { ProcessDiagramGenerator generator = new DefaultProcessDiagramGenerator(); // 生成流程图 已启动的task 高亮 // return generator.generateDiagram(model, // runtimeService.getActiveActivityIds(processInstanceId)); // 生成流程图 都不高亮 return generator.generateDiagram(model,Collections.<String>emptyList()); } } return null; }
调用代码InputStream in = this.getProcessDiagram(processInstance.getId()); String imageName = "image" + Instant.now().getEpochSecond()+".png"; FileUtils.copyInputStreamToFile(in, new File("src/main/resources/processes/"+imageName));扩展名可以尝试svg或png
bpmnjs活动的图,还能增加功能,比如鼠标以上的历史环节提示,甚至点击任务节点弹出页面去维护表等等
生成图片,是历史的车轮就倒回去了,但是不排除就有这样的需求。
还是建议用bpmnjs去展示吧。10
相似问题