`

Activiti在linux上出现流程图中文乱码的问题

阅读更多
第一种解决方案就是将linux的添加中文的font
public InputStream tracePhoto(String processDefinitionId, String executionId) {
		List<String> activeActivityIds = Lists.newArrayList(), highLightedFlows = new ArrayList<String>();
		if (runtimeService.createExecutionQuery().executionId(executionId).count() > 0) {
			activeActivityIds = runtimeService.getActiveActivityIds(executionId);
		}
		/**
		 * 获得当前活动的节点
		 */
		if (this.isFinished(executionId)) {// 如果流程已经结束,则得到结束节点
			activeActivityIds.add(historyService.createHistoricActivityInstanceQuery().executionId(executionId)
					.activityType("endEvent").singleResult().getActivityId());
		} else {// 如果流程没有结束,则取当前活动节点
			// 根据流程实例ID获得当前处于活动状态的ActivityId合集
			activeActivityIds = runtimeService.getActiveActivityIds(executionId);
		}
		// 获得历史活动记录实体(通过启动时间正序排序,不然有的线可以绘制不出来)
		List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery()
				.executionId(executionId).orderByHistoricActivityInstanceStartTime().asc().list();
		// 计算活动线
		highLightedFlows = this
				.getHighLightedFlows((ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService)
						.getDeployedProcessDefinition(processDefinitionId), historicActivityInstances);
		/**
		 * 绘制图形
		 */
		InputStream imageStream = null;
		if (null != activeActivityIds) {
			try {
				// 获得流程引擎配置
				ProcessEngineConfiguration processEngineConfiguration = processEngine.getProcessEngineConfiguration();
				// 根据流程定义ID获得BpmnModel
				BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
				// 输出资源内容到相应对象
				imageStream = new DefaultProcessDiagramGenerator().generateDiagram(bpmnModel, "png", activeActivityIds,
						highLightedFlows, processEngineConfiguration.getActivityFontName(),
						processEngineConfiguration.getLabelFontName(), processEngineConfiguration.getClassLoader(),
						1.0);
				return imageStream;
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return null;
	}


第二种是在tomcat中直接适应一下linux的系统建议使用第二种。
在jdk15以后,只需在~/jre/lib/fonts/下建一个fallback目录,把你想在java中使用的字体烤贝到这个目录中即可
以下方法在fc6下测试通过,假设用户的jre路径为 /usr/java/jdk1.7.63/jre/
  cd /usr/java/jdk1.7.63/jre/lib/fonts
  sudo mkdir fallback
将C:\WINDOWS\Fonts\simsun.ttc拷贝到   /usr/java//jdk1.7.63/jre/lib/fonts/fallback文件夹内
  好的你重启服务器试试。估计是OK的了

新版出现属性名称中文乱码问题
在新版的中文属性名字的title时候出现中文乱码是由于你返回的流转化为jsonString时候需要指定解析编码格式,
在requestMap上添加method = RequestMethod.GET, produces = "application/json;charset=utf-8"
@RequestMapping(value = "editor/stencilset", 
			method = RequestMethod.GET, produces = "application/json;charset=utf-8")
	@ResponseBody
	public String stencilset() {
		InputStream stencilsetStream = this.getClass().getClassLoader().getResourceAsStream("stencilset.json");
		try {
			return IOUtils.toString(stencilsetStream, "utf-8");
		} catch (Exception e) {
			throw new RuntimeException("Error while loading stencil set", e);
		} finally {
			IOUtils.closeQuietly(stencilsetStream);
		}
	}
分享到:
评论

相关推荐

    Activiti5学习-activiti流程图中文乱码

    在IT行业中,Activiti是一个非常流行的开源工作流引擎,它被广泛用于企业级应用中来管理业务流程。本文主要探讨的是在使用Activiti5时...通过以上步骤,通常可以有效地解决这个问题,使得中文在流程图中能正常显示。

    解决activiti生成的PNG乱码

    `ProcessDiagramCanvas.java`是`ProcessDiagramCanvas`类的源代码文件,我们可以在这个文件中找到绘制流程图的关键方法,例如`drawText()`,该方法用于在流程图上绘制文本。当流程图中的文本需要渲染时,这个方法会...

    activiti流程图查看demo

    这个"activiti流程图查看demo"是一个示例项目,旨在帮助用户理解如何在Activiti中查看和操作流程图。在本篇文章中,我们将深入探讨Activiti的核心概念、流程图的查看方法以及如何利用diagram-viewer工具来实现这一...

    Activiti流程图部署及流程图部分操作.pdf

    在这个主题中,我们主要关注如何在Activiti中进行流程图的部署以及如何操作流程图。 流程图的部署是Activiti中至关重要的一步,因为它使得业务流程能够在系统中执行。在Activiti中,流程图通常是以BPMN 2.0标准的...

    activiti6.0实现流程图片自定义颜色 当前任务为红色,走过的任务为绿色,自定义文字颜色连线文字显示

    首先,我们要理解流程图在Activiti中的作用。流程图是流程模型的可视化表示,它帮助用户理解并跟踪业务流程的执行状态。在Activiti 6.0中,我们可以通过自定义颜色来突出显示当前任务和已完成的任务,从而提供更清晰...

    使用activiti工作流引擎显示流程图时高亮显示流程图中已执行节点和已执行路径方法源代码

    在流程图中,每个节点代表一个任务或事件,连接线则表示任务间的流转。 高亮显示已执行节点和路径的方法通常涉及以下步骤: 1. **获取流程定义和实例**:首先,你需要通过流程定义ID(processDefinitionId)获取到...

    activiti7干货-svg流程图展示及通过坐标添加悬浮提示

    不懂可以问我,qq2738671

    activiti5.22 流程设计器绘画的流程图条件线上的字不显示

    标题 "activiti5.22 流程设计器绘画的流程图条件线上的字不显示" 指出的问题是,在使用Activiti 5.22版本的流程设计器绘制流程图时,条件线上(通常用于表示流程分支依据的条件)的文字没有正确显示。这可能对流程图...

    activiti部署中文乱码解决,亲测有效,替换三个文件

    activiti部署中文乱码解决,亲测有效, 1.activiti-webapp-explorer2\src\main\webapp\editor-app\i18n下en.json 2.activiti-webapp-explorer2\src\main\resources下 activiti-custom-context.xml 3.activiti-webapp-...

    activiti工作流流程跟踪图(图片(两种方式))

    将这些任务节点在流程图上标记出来,可以直观地看到流程的停滞点或瓶颈。 为了生成这两种高亮显示的流程图,通常需要结合Activiti的API与图像处理库,比如Java的Batik库,它可以解析BPMN流程图的XML描述,并将其...

    Activiti5学习-在流程图中为带条件的顺序流添加提示信息

    在Activiti中,我们可以在流程图中通过`activiti:conditionExpression`属性来定义这个条件表达式,通常使用的是Java表达式语言(JEXL)。 要在流程图中为带条件的顺序流添加提示信息,我们可以在流程定义的XML文件...

    Activiti工作流的Web流程图设计器

    Activiti的Web流程图设计器,BPMN-JS也可在官网下载并配置,这里压缩包是配置好的 1、需要提前下载好Node.js(中文官网连接:http://nodejs.cn/),傻瓜式安装。 2、解压后在bpmnjs目录打开dos命令窗口,输入npm ...

    activiti-explorer-5.22.0.jar(修复Activiti5.22 explorer部署流程图的中文字符乱码的BUG)

    修复了Activiti5.22 explorer部署程序图中文乱码的BUG,完美解决了activiti explorer中使用modeler画的含有中文的流程发布后,中文字符乱码的问题。 操作方法:下载activiti-explorer-5.22.0.jar,找到此文件所在...

    activiti工作流高亮图配置.zip

    可以使用Activiti提供的Rest API获取流程实例的详细信息,然后在前端页面上动态更新流程图的高亮状态。使用JavaScript库如jQuery或Vue.js可以方便地操作DOM元素,实现节点的高亮。 5. **后端处理**:后端需要处理...

    Activiti学习文档(二)之画流程图并部署流程

    同时,Activiti还提供了丰富的API和表达式语言(EL),使得在流程中进行动态计算和决策成为可能。 总结来说,“Activiti学习文档(二)之画流程图并部署流程”会带你走过从设计到实施一个完整流程的整个过程,包括...

    activiti 5.22流程图连线名称不显示bug修复

    然而,在实际使用过程中,可能会遇到各种问题,其中之一就是在Activiti 5.22版本中出现的“流程图连线名称不显示”的bug。 该问题主要体现在使用Activiti的Modeler设计器时,用户在设计流程图时可以清晰地看到连线...

    activiti6.0流程图.zip

    在Activiti 6.0版本中,开发者可以实现对流程图的自定义,以满足特定的视觉需求和业务逻辑展示。本压缩包提供了相关的代码示例和图片,帮助理解如何实现流程图的颜色定制,包括当前任务和已执行任务的状态显示。 `...

    activiti工作流linux系统下流程图中文显示不正常解决.docx

    在Linux环境下部署Activiti工作流时,可能会遇到中文字符在流程图中显示异常的问题。这主要是因为Linux系统默认字体设置及配置不支持某些特定的中文字体,导致在流程图中无法正确渲染中文字符。 #### 解决方案步骤 ...

Global site tag (gtag.js) - Google Analytics