解决Activiti流程图中文乱码问题

默认情况下Activiti使用DefaultProcessDiagramGenerator来生成流程图(Activiti 6是这样的,Activiti 7需要额外引入activiti-image-generator),使用其generateDiagram方法。如果流程定义中存在中文字符,那么生成的流程图极大可能会出现乱码。

指定字体

generateDiagram方法可以使用activityFontNamelabelFontNameannotationFontName三个参数来指定字体,比如可以指定为宋体,这样生成的流程图就不会产生豆腐块了。

打包字体

宋体以及其他一些常用字体是Windows上面的默认字体,通常应用部署环境是Linux,为了能正常显示中文,我们最好是把字体文件打包进我们的应用,然后再使用Java加载字体。

从Windows复制或者从网上下载字体文件,通常是*.ttf,放到我们的应用目录中,然后使用Spring的ResourceLoader来找到我们的字体文件,最后使用Java加载字体,我们就可以指定生成流程图字体为我们加载的字体了。

Font font = Font.createFont(Font.TRUETYPE_FONT, inputStream);
GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(font);

可以使用font.getFontName()查看我们注册的字体是什么名字。


Spring Boot 2.x 整合Activiti 6/7 流程引擎

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容