發表於 程式分享

使用iText將word內多筆資料以功能變數convert 成 pdf

1.word設定如下

foreach

2.程式碼如下

 1) 將資料取至List

    private boolean retriveListData_13(int applySeqno_in, int kind_in, OLServiceEntry olServiceEntry, 
            List clientASOs) {
        //1.取得資料    
        OLClientSign olClientSign = olServiceEntry.retriveOLClientSign(applySeqno_in, OLClientSignKind.Kind_8.getId());
        
        //2.對應資料
        HashMap answerMap = retriveAnswerMap((olClientSign == null) ? "" : olClientSign.getAnswer());
        
        //3.取筆數
        String asoAddrow = (answerMap.get("asoAddrow") != null) ? answerMap.get("asoAddrow").trim() : "";
        int iAsoAddrow = (new Integer(asoAddrow)).intValue();
        
        if (iAsoAddrow >= 1) {
            if (clientASOs == null) {
                logger.error("List clientASOs is null");
                return false;
            }
            
            //3.取資料
            for (int iAsoIdx = 1; iAsoIdx <= iAsoAddrow; iAsoIdx++) {
                String kindKey = "kind_" + iAsoIdx;
                String kind = (answerMap.get(kindKey) != null) ? answerMap.get(kindKey).trim() : "";
                int iKind = (new Integer(kind)).intValue();
                
                String declareNameKey = "declareName_" + iAsoIdx;
                String declareName = (answerMap.get(declareNameKey) != null) ? answerMap.get(declareNameKey).trim() : "";
                
                String declareIdKey = "declareId_" + iAsoIdx;
                String declareId = (answerMap.get(declareIdKey) != null) ? answerMap.get(declareIdKey).trim() : "";
                
                String kindDesc = kind + "-";
                for (ASOKind asoKind : ASOKind.values()) {
                    if (iKind == asoKind.getId()) {
                        kindDesc += asoKind.getDesc();
                        break;
                    }
                }
                clientASOs.add(new OLClientASOItem(declareId, kindDesc, declareName));
            }
        }
        
        return true;
    }

2) convert to pdf

                    if (retriveListData_13(applySeqno_in, kind_in, olServiceEntry, clientASOs) == false) {
                        logger.error("retrive List(ASO) Data error - applySeqno_in: ' + applySeqno_in + ', kind_in: " + kind_in + ", version_in: " + version_in);
                        response.getWriter().println("retrive List(ASO) Data error");
                        return null;
                    }
                    
                    context.put("clientASOs", clientASOs);

發表留言