activiti5.19.0.2 task圖片輸出中文亂碼

如下是我的項目中出現的問題,僅供我的參考: php

項目中使用的是當前最新的activiti版本:5.19.0.2 java

圖片輸出顯示的中文亂碼 shell

網上找的解決方案,在配置文件裏面加入 centos


<property name="activityFontName" value="宋體" />
<property name="labelFontName" value="宋體" />



不起做用,網上還有一種方式就是修改源碼,改變他的字體,不想改動源碼,之後更新,仍是要改動源碼


在論壇中 2樓給出瞭解決方案,連接地址:http://www.activiticn.org/forum.php?mod=viewthread&tid=1548,感謝2樓給出的解決方案 服務器

下面是個人寫法,配置文件中仍是加入編碼: 測試


Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
			/**流程實例**/  
BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());  
List<String> activeActivityIds =  runtimeService.getActiveActivityIds(task.getProcessInstanceId());  
ProcessEngineImpl defaultProcessEngine = (ProcessEngineImpl) ProcessEngines.getDefaultProcessEngine();  
            Context.setProcessEngineConfiguration(defaultProcessEngine.getProcessEngineConfiguration()); 
ProcessEngineConfiguration processEngineConfiguration = Context.getProcessEngineConfiguration();
/**獲得圖片輸出流**/  
InputStream imageStream = processEngine.getProcessEngineConfiguration()
                    .getProcessDiagramGenerator()
                    .generateDiagram(bpmnModel, "png", activeActivityIds, new ArrayList<String>(),
                    processEngineConfiguration.getActivityFontName(),
                    processEngineConfiguration.getLabelFontName(), null, 1.0);
int len = 0;
byte[] b = new byte[1024];
while ((len = imageStream.read(b, 0, 1024)) != -1) {
	response.getOutputStream().write(b, 0, len);
}



輸出的結果以下圖:



項目上次centos服務器,發現打開的仍是亂碼,緣由是centos服務器沒有對中文進行支持,對服務器安裝中文支持包 字體

1.安裝中文包 編碼


yum -y groupinstall chinese-support



2.修改字符編碼配置文件



vi /etc/sysconfig/i18n
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
export LC_ALL="zh_CN.GB18030"
3.重啓服務器 ,ok搞定,測試正常
相關文章
相關標籤/搜索