最近研究SpringBoot 整合Activiti时,实现流程图高亮追踪是出现中文乱码问题,找了很多方法,现在把我最后的解决方法提供给大家。

Spring Boot是微服务快速开发框架,强调的是零配置,显然不推荐采用XML配置文件的方式解决。不使用Spring Boot的时候,

是通过下面这种方式就可以解决

①原始解决方式:在Spring配置文件中的

<bean id="processEngineConfiguration"
class="org.activiti.spring.SpringProcessEngineConfiguration">

中加入两行代码:

<property name="activityFontName"
value="宋体"/>

<property name="labelFontName"
value="宋体"/>

配置如下:

<bean id="processEngineConfiguration"

class="org.activiti.spring.SpringProcessEngineConfiguration">

<property name="activityFontName"
value="宋体"/>
<property name="labelFontName"
value="宋体"/>
<property name="dataSource"
ref="dataSource" />
<property name="transactionManager"
ref="transactionManager" />
<property
name="databaseSchemaUpdate" value="true" />
<property
name="mailServerHost" value="localhost" />
<property
name="mailServerPort" value="5025" />
<property
name="jpaHandleTransaction" value="true" />
<property
name="jpaCloseEntityManager" value="true" />
<property
name="jobExecutorActivate" value="false" />
</bean>

②Spring
Boot中我采用的解决办法是,生成流程图的时候设置字体和编码信息解决,如下

public void genPic(String procId) throws
Exception {
ProcessInstance pi =
this.processEngine.getRuntimeService().createProcessInstanceQuery()

.processInstanceId(procId).singleResult();
BpmnModel bpmnModel =
this.processEngine.getRepositoryService().getBpmnModel(pi.getProcessDefinitionId());

List<String> activeIds =
this.processEngine.getRuntimeService().getActiveActivityIds(pi.getId());

ProcessDiagramGenerator p = new DefaultProcessDiagramGenerator();
InputStream is = p.generateDiagram(bpmnModel, "png",
activeIds, Collections.<String> emptyList(), "宋体",
"宋体",
null, 1.0);

File file = new
File("d:\\Download\\process.png");
OutputStream os = new
FileOutputStream(file);

byte[] buffer = new
byte[1024];
int len = 0;
while ((len = is.read(buffer)) !=
-1) {
os.write(buffer, 0, len);
}

os.close();
is.close();
}

转载请注明:http://www.xujin.org

Spring Boot整合Activiti,查看流程图出现中文乱码问题的更多相关文章

  1. 解决Spring boot中读取属性配置文件出现中文乱码的问题

    问题描述: 在配置文件application.properties中写了 server.port=8081 server.servlet.context-path=/boy name=张三 age=2 ...

  2. Spring Kafka和Spring Boot整合实现消息发送与消费简单案例

    本文主要分享下Spring Boot和Spring Kafka如何配置整合,实现发送和接收来自Spring Kafka的消息. 先前我已经分享了Kafka的基本介绍与集群环境搭建方法.关于Kafka的 ...

  3. Spring Boot整合Mybatis并完成CRUD操作

    MyBatis 是一款优秀的持久层框架,被各大互联网公司使用,本文使用Spring Boot整合Mybatis,并完成CRUD操作. 为什么要使用Mybatis?我们需要掌握Mybatis吗? 说的官 ...

  4. Spring Boot整合Elasticsearch

    Spring Boot整合Elasticsearch   Elasticsearch是一个全文搜索引擎,专门用于处理大型数据集.根据描述,自然而然使用它来存储和搜索应用程序日志.与Logstash和K ...

  5. spring boot整合servlet、filter、Listener等组件方式

    创建一个maven项目,然后此项目继承一个父项目:org.springframework.boot 1.创建一个maven项目: 2.点击next后配置父项目及版本号 3.点击finish后就可查看p ...

  6. Spring boot整合jsp

    这几天在集中学习Spring boot+Shiro框架,因为之前view层用jsp比较多,所以想在spring boot中配置jsp,但是spring boot官方不推荐使用jsp,因为jsp相对于一 ...

  7. spring boot整合Swagger2

    Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器 ...

  8. Spring Boot整合JPA、Redis和Swagger2

    好久没有总结了,最近也一直在学习.今天就把spring boot与其它技术的整合做个小总结,主要是jpa.redis和swagger2.公司里有用到这些,整合起来也很简单. 首先,新建一个Spring ...

  9. Elasticsearch学习(3) spring boot整合Elasticsearch的原生方式

    前面我们已经介绍了spring boot整合Elasticsearch的jpa方式,这种方式虽然简便,但是依旧无法解决我们较为复杂的业务,所以原生的实现方式学习能够解决这些问题,而原生的学习方式也是E ...

随机推荐

  1. GPS定位 测试

    public class MainActivity extends Activity { private final String TAG = "BX"; private Loca ...

  2. gbk与utf-8转换

    linux: #include <iconv.h> int code_convert(char *from_charset,char *to_charset,char *inbuf,int ...

  3. (转)客户端触发Asp.net中服务端控件事件

    第一章. Asp.net中服务端控件事件是如何触发的 Asp.net 中在客户端触发服务端事件分为两种情况: 一. WebControls中的Button 和HtmlControls中的Type为su ...

  4. JAVA 如何把request请求的参数,快速放到model对象中

    因为项目需要,需要从request中读取大量的参数. 因为本人过懒,所以写了个方法把request参数,直接放到对应的类中. 参数 String str="aa,bb,cc"; P ...

  5. java 读取properties文件

    import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class Ge ...

  6. android-oldman之TitleBar

    随着大众口味的不断提高,对app要的开发的要求也不断提高,开发人员们要在app上展示的东西安也越来越多,android早期的一些控件慢慢的不不能满足开发的要求了,比如TitleBar的应用的就没有原来 ...

  7. Sqrtx

    我只能想出二分的方法,而且还不一定能写出最简洁的代码.无论刷多少遍,牛顿迭代法我都想不到,莫名有种悲哀的感觉:智力是硬伤啊.就算如此,却还要一遍遍不厌其烦地刷,这才是最悲剧的.多说无益,上代码. 二分 ...

  8. android 开发中 添加库文件 和so 文件的存放位置和添加依赖

    so文件一般存储在  main 当中  jniLibs 当中 然后在build.gradle中添加 sourceSets { main { jniLibs.srcDirs = ['src/main/j ...

  9. eap-tls

    eap-tls       文件路径 用途 示例 备注 #gedit /usr/local/etc/raddb/sites-available/default #gedit /usr/local/et ...

  10. Thinkphp 带查询条件数据分页

    //查询条件中如果有中文 $keyword= urldecode(I("request.keyword")); if ($keyword!=""){ $Mode ...