activiti 5.17 流程圖中文亂碼問題


1. 流程圖中任務中的中文亂碼顯示問題。

 
解決方法:設置processEngineConfiguration中的兩個字體屬性,例如:
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
     。。。
     <!-- 生成流程圖的字體 -->

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

</bean>
 
2. 流程圖中TextAnnotation中的中文亂碼顯示問題。
 
此亂碼產生的原因是,負責畫流程圖的類DefaultProcessDiagramCanvas 定義注解的字體了屬性(為Arial):
protected static Font ANNOTATION_FONT = new Font("Arial", Font.PLAIN, FONT_SIZE);
然后再畫流程圖時,不知什么原因,在外部配置了的字體並沒有使用,在代碼中硬編碼設置textAnnotation 字體為ANNOTATION_FONT ,導致出現中文亂碼,外部配置也沒用。見下面代碼:
       public void drawTextAnnotation(String text, GraphicInfo graphicInfo) {
         int x = (int) graphicInfo.getX();
         int y = (int) graphicInfo.getY();
         int width = (int) graphicInfo.getWidth();
         int height = (int) graphicInfo.getHeight();
    
        Font originalFont = g.getFont();
       Stroke originalStroke = g.getStroke();
       
        g.setFont(ANNOTATION_FONT);

       ...
解決方法:重新編譯此模塊,將默認字體改成宋體,或者注釋掉設置字體代碼。是否可以自定義DefaultProcessDiagramCanvas,通過擴展的方式來解決,目前我沒有發現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM