Activiti 5.16 流程图片生成的中文乱码问题

工作流引擎activiti5.16,绘制的流程图中文乱码问题。

解决方法一:

1.在activiti.cfg.xml增加配置

?
1
2
3
<!-- 生成流程图的字体 -->
< property  name = "activityFontName"  value = "宋体" />
< property  name = "labelFontName"  value = "宋体" />

2.中文乱码,研究了一下源码,发现居然不设置参数,直接调用png方法,字体就是默认的Arial字体,郁闷了半天,不想改原始程序,又找到个稍微麻烦点的方法

?
1
2
3
4
5
processEngine.getProcessEngineConfiguration().getProcessDiagramGenerator()
     .generateDiagram(bpmnModel,  "png"
                      processEngine.getProcessEngineConfiguration().getActivityFontName(),
                      processEngine.getProcessEngineConfiguration().getLabelFontName(), 
                      processEngine.getProcessEngineConfiguration().getClassLoader(), 1.0 );


解决方法二:

1.复制源码org.activiti.image.impl.DefaultProcessDiagramCanvas,在工程下新增此类,并把修改变量。

  protected String activityFontName = "宋体";
  protected String labelFontName = "宋体";

解决方法三:

1.在获取活动节点的流程图时用方法:

    	ExecutionEntityManager executionEntityManager = commandContext.getExecutionEntityManager();
    	ExecutionEntity executionEntity = executionEntityManager.findExecutionById(processInstanceId);
    	List<String> activiityIds = executionEntity.findActiveActivityIds();
    	String processDefinitionId = executionEntity.getProcessDefinitionId();

    	GetBpmnModelCmd getBpmnModelCmd = new GetBpmnModelCmd(processDefinitionId);
    	BpmnModel bpmnModel = getBpmnModelCmd.execute(commandContext);

    	ProcessDiagramGenerator procDiaGenerator = new DefaultProcessDiagramGenerator();
    	InputStream is = procDiaGenerator.generateDiagram(
    			bpmnModel, 
    			"png", 
    			activiityIds, 
    			new ArrayList<String>(), 
    			"宋体", 
    			"宋体", 
    			null, 
    			1.0);


  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值