activiti生成图片乱码解决
来源:互联网 发布:天基卫星通信网络 编辑:程序博客网 时间:2024/05/17 08:43
利用ProcessDiagramGenerator.generateDiagram方法可以生成当前活动用红色边框渲染的图片,但是执行后会有乱码的问题,这个主要是由于生成图片时的font造成的。
网上的解决方案有两种
一种是修改源码
另一种是在xml配置中添加字体配置
- <property name="activityFontName" value="${diagram.activityFontName}"/>
- <property name="labelFontName" value="${diagram.labelFontName}"/>
将这两个属性配置为宋体,但是在程序执行的时候还是会有问题
这是因为还需要将activiti的配置对象设置到Context对象中,activiti默认不会将其注入,具体看代码
ProcessDiagramCanvas这个类
- public ProcessDiagramCanvas(int width, int height) {
- this.canvasWidth = width;
- this.canvasHeight = height;
- //会从上下文获取,默认这个返回是空的 所以需要在自己的程序里手动设置进去
- //否则会取其默认值Arial
- if (Context.getProcessEngineConfiguration() != null) {
- this.activityFontName = Context.getProcessEngineConfiguration().getActivityFontName();
- }
- if (Context.getProcessEngineConfiguration() != null) {
- this.labelFontName = Context.getProcessEngineConfiguration().getLabelFontName();
- }
- this.processDiagram = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- this.g = processDiagram.createGraphics();
- g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- g.setPaint(Color.black);
- Font font = new Font(activityFontName, Font.BOLD, FONT_SIZE);
- g.setFont(font);
- this.fontMetrics = g.getFontMetrics();
- LABEL_FONT = new Font(labelFontName, Font.ITALIC, 10);
- }
所以在自己代码中要执行 Context.setProcessEngineConfiguration(processEngineConfiguration);这样才能彻底解决乱码的问题
0 0
- activiti生成图片乱码解决
- Activiti 生成图片乱码问题解决备忘录
- Activiti 5.16 流程图片生成的中文乱码问题
- activiti工作流【流程图乱码】解决
- Activiti Modeler整合之后,部署之后流程图片显示乱码问题分析与解决
- 解决idea中创建activiti项目后如何生成bng图片及如何找到连线
- Activiti model生成png图片(解决中文不显示问题)
- activiti-explorer乱码问题的解决
- 生成javadoc乱码解决
- Freemarker生成乱码解决
- JFreeChart生成折线图(生成图片本地保存,有解决中文乱码的通用方法)
- activiti 发布后图片中汉字显示乱码问题
- Activiti部署流程时图片中文乱码解决方法
- activiti 发布后图片中汉字显示乱码问题
- servlet输出生成乱码 解决
- Activiti工作流-.png图片不自动生成问题
- Linux下的JFreeChart中文乱码解决(图片生成后中文显示为“口”)
- Linux下的JFreeChart中文乱码解决(图片生成后中文显示为“口”)
- [Leetcode] Surrounded Regions (Java)
- 实现Windows Phone7 的DataTemplateSelector和CustomDataTemplateSelector
- 实现多线程的两种方式
- C++可变参数写法
- Nutch1.7的deploy模式在伪分布式环境上报错
- activiti生成图片乱码解决
- VisionMobile:M2M生态系统的秘方(5):四、创建M2M平台
- linux配置java环境变量(详细)
- oracle查看当前登陆的用户信息
- 关于 ADS1.2编译自带项目出现的 FATAL L6002U Could not open file:
- 报数游戏
- 关于线程生产者和消费者的问题
- jquery pop弹出框
- 快速排序