⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pdfsurveyservices.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                    surveyQuestionAppl.set("sequenceNum", sequenceNum);                }                surveyQuestion.create();                surveyQuestionAppl.create();            }                        pdfStamper.close();            if (UtilValidate.isNotEmpty(contentId)) {                survey = delegator.findByPrimaryKey("Survey", UtilMisc.toMap("surveyId", surveyId));                survey.set("acroFormContentId", contentId);                survey.store();            }        } catch (GenericEntityException e) {            String errMsg = "Error generating PDF: " + e.toString();            Debug.logError(e, errMsg, module);            return ServiceUtil.returnError(errMsg);        } catch(GeneralException e) {            System.err.println(e.getMessage());            ServiceUtil.returnError(e.getMessage());        } catch (Exception e) {            String errMsg = "Error generating PDF: " + e.toString();            Debug.logError(e, errMsg, module);            return ServiceUtil.returnError(errMsg);        }                Map results = ServiceUtil.returnSuccess();        results.put("surveyId", surveyId);        return results;    }        /**     *      */    public static Map buildSurveyResponseFromPdf(DispatchContext dctx, Map context) {        String surveyResponseId = null;        try {                        GenericDelegator delegator = dctx.getDelegator();            String partyId = (String)context.get("partyId");            String surveyId = (String)context.get("surveyId");            //String contentId = (String)context.get("contentId");            surveyResponseId = (String)context.get("surveyResponseId");            if (UtilValidate.isNotEmpty(surveyResponseId)) {                GenericValue surveyResponse = delegator.findByPrimaryKey("SurveyResponse", UtilMisc.toMap("surveyResponseId", surveyResponseId));                if (surveyResponse != null) {                    surveyId = surveyResponse.getString("surveyId");                }            } else {                surveyResponseId = delegator.getNextSeqId("SurveyResponse");                GenericValue surveyResponse = delegator.makeValue("SurveyResponse", UtilMisc.toMap("surveyResponseId", surveyResponseId, "surveyId", surveyId, "partyId", partyId));                surveyResponse.set("responseDate", UtilDateTime.nowTimestamp());                surveyResponse.set("lastModifiedDate", UtilDateTime.nowTimestamp());                surveyResponse.create();            }                        ByteArrayOutputStream os = new ByteArrayOutputStream();            ByteWrapper byteWrapper = getInputByteWrapper(context, delegator);            PdfReader r = new PdfReader(byteWrapper.getBytes());            PdfStamper s = new PdfStamper(r,os);            AcroFields fs = s.getAcroFields();            HashMap hm = fs.getFields();                                    s.setFormFlattening(true);            Iterator i = hm.keySet().iterator();            while (i.hasNext()) {                String fieldName = (String)i.next();                //AcroFields.Item item = fs.getFieldItem(fieldName);                //int type = fs.getFieldType(fieldName);                String value = fs.getField(fieldName);                                List questions = delegator.findByAnd("SurveyQuestionAndAppl", UtilMisc.toMap("surveyId", surveyId, "externalFieldRef", fieldName));                if (questions.size() == 0 ) {                    Debug.logInfo("No question found for surveyId:" + surveyId + " and externalFieldRef:" + fieldName, module);                    continue;                }                                GenericValue surveyQuestionAndAppl = (GenericValue)questions.get(0);                String surveyQuestionId = (String)surveyQuestionAndAppl.get("surveyQuestionId");                String surveyQuestionTypeId = (String)surveyQuestionAndAppl.get("surveyQuestionTypeId");                GenericValue surveyResponseAnswer = delegator.makeValue("SurveyResponseAnswer", UtilMisc.toMap("surveyResponseId", surveyResponseId, "surveyQuestionId", surveyQuestionId));                if (surveyQuestionTypeId ==null || surveyQuestionTypeId.equals("TEXT_SHORT")) {                    surveyResponseAnswer.set("textResponse", value);                }                delegator.create(surveyResponseAnswer);            }                        s.close();        } catch (GenericEntityException e) {            String errMsg = "Error generating PDF: " + e.toString();            Debug.logError(e, errMsg, module);            return ServiceUtil.returnError(errMsg);        } catch(GeneralException e) {            System.err.println(e.getMessage());            ServiceUtil.returnError(e.getMessage());        } catch (Exception e) {            String errMsg = "Error generating PDF: " + e.toString();            Debug.logError(e, errMsg, module);            return ServiceUtil.returnError(errMsg);        }                Map results = ServiceUtil.returnSuccess();        results.put("surveyResponseId", surveyResponseId);        return results;    }    /**     */    public static Map getAcroFieldsFromPdf(DispatchContext dctx, Map context) {                Map acroFieldMap = new HashMap();        try {            ByteArrayOutputStream os = new ByteArrayOutputStream();            GenericDelegator delegator = dctx.getDelegator();            ByteWrapper byteWrapper = getInputByteWrapper(context, delegator);            PdfReader r = new PdfReader(byteWrapper.getBytes());            PdfStamper s = new PdfStamper(r,os);            AcroFields fs = s.getAcroFields();            HashMap map = fs.getFields();                        s.setFormFlattening(true);                        // Debug code to get the values for setting TDP    //        String[] sa = fs.getAppearanceStates("TDP");    //        for (int i=0;i<sa.length;i++)    //            Debug.log("Appearance="+sa[i]);                        Iterator iter = map.keySet().iterator();            while (iter.hasNext()) {                String fieldName=(String)iter.next();                String parmValue = fs.getField(fieldName);                acroFieldMap.put(fieldName, parmValue);            }                                     } catch(DocumentException e) {            System.err.println(e.getMessage());            ServiceUtil.returnError(e.getMessage());        } catch(GeneralException e) {            System.err.println(e.getMessage());            ServiceUtil.returnError(e.getMessage());        } catch(IOException ioe) {            System.err.println(ioe.getMessage());            ServiceUtil.returnError(ioe.getMessage());        }            Map results = ServiceUtil.returnSuccess();    results.put("acroFieldMap", acroFieldMap);    return results;    }        /**     */    public static Map setAcroFields(DispatchContext dctx, Map context) {                Map results = ServiceUtil.returnSuccess();        GenericDelegator delegator = dctx.getDelegator();        try {            Map acroFieldMap = (Map)context.get("acroFieldMap");            ByteWrapper byteWrapper = getInputByteWrapper(context, delegator);            PdfReader r = new PdfReader(byteWrapper.getBytes());            ByteArrayOutputStream baos = new ByteArrayOutputStream();            PdfStamper s = new PdfStamper(r, baos);            AcroFields fs = s.getAcroFields();            Map map = fs.getFields();                        s.setFormFlattening(true);                        // Debug code to get the values for setting TDP    //      String[] sa = fs.getAppearanceStates("TDP");    //      for (int i=0;i<sa.length;i++)    //          Debug.log("Appearance="+sa[i]);                        Iterator iter = map.keySet().iterator();            while (iter.hasNext()) {                String fieldName=(String)iter.next();                String fieldValue = fs.getField(fieldName);                Object obj = acroFieldMap.get(fieldName);                if (obj instanceof Date) {                    Date d=(Date)obj;                    fieldValue=UtilDateTime.toDateString(d);                } else if (obj instanceof Long) {                    Long lg=(Long)obj;                    fieldValue=lg.toString();                } else if (obj instanceof Integer) {                    Integer ii=(Integer)obj;                    fieldValue=ii.toString();                }   else {                    fieldValue=(String)obj;                }                            if (UtilValidate.isNotEmpty(fieldValue))                    fs.setField(fieldName, fieldValue);            }                                   s.close();            baos.close();            ByteWrapper outByteWrapper = new ByteWrapper(baos.toByteArray());            results.put("outByteWrapper", outByteWrapper);        } catch(DocumentException e) {            System.err.println(e.getMessage());            ServiceUtil.returnError(e.getMessage());        } catch(GeneralException e) {            System.err.println(e.getMessage());            ServiceUtil.returnError(e.getMessage());        } catch(FileNotFoundException e) {            System.err.println(e.getMessage());            ServiceUtil.returnError(e.getMessage());        } catch(IOException ioe) {            System.err.println(ioe.getMessage());            ServiceUtil.returnError(ioe.getMessage());        } catch(Exception ioe) {            System.err.println(ioe.getMessage());

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -