weiwenhai 7 роки тому
батько
коміт
d3f37a71c0

+ 19 - 0
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/CommonUtils.java

@@ -46,6 +46,15 @@ public final class CommonUtils {
 
     public static final String PAPER_TITLE="中国石油大学";
     public static final String PAPER_SUB_TITLE="网络教育";
+    
+    private static final String[][] BASIC_ESCAPE = {
+        {"\"", """}, // " - double-quote
+        {"&", "&"},   // & - ampersand
+        {"\"", "&rdquo;"}, // < - less-than 
+    };
+    
+    public static String[][] BASIC_UNESCAPE() { return BASIC_UNESCAPE.clone(); }
+    private static final String[][] BASIC_UNESCAPE = invert(BASIC_ESCAPE);
 
     private static final Logger log = LoggerFactory.getLogger(CommonUtils.class);
 
@@ -471,8 +480,18 @@ public final class CommonUtils {
      */
     public static final CharSequenceTranslator UNESCAPE_HTML4 = 
             new AggregateTranslator(
+            	new LookupTranslator(CommonUtils.BASIC_UNESCAPE()),
                 new LookupTranslator(EntityArrays.ISO8859_1_UNESCAPE()),
                 new LookupTranslator(EntityArrays.HTML40_EXTENDED_ESCAPE()),
                 new NumericEntityUnescaper()
             );
+    
+    public static String[][] invert(final String[][] array) {
+        final String[][] newarray = new String[array.length][2];
+        for(int i = 0; i<array.length; i++) {
+            newarray[i][0] = array[i][1];
+            newarray[i][1] = array[i][0];
+        }
+        return newarray;
+    }
 }

+ 17 - 24
cqb-paper/src/main/java/com/qmth/cqb/paper/service/export/ExportPaperAbstractService.java

@@ -517,22 +517,19 @@ public abstract class ExportPaperAbstractService {
 	 */
 	private int optionLine(List<QuesOption> optionList) throws Exception{
 		int four = 0;
-		int two = 0;
+		String tmpText = "";
 		for(int i=0;i<optionList.size();i++){
     		QuesOption quesOption = optionList.get(i);
             List<Object> pList = getPlist(quesOption);
-            if(pList==null || pList.size() == 0){
-            	continue;
-            }
-            //判断是否为纯文本
-            boolean isText = DocxProcessUtil.isText((P)pList.get(0));
+        	//判断是否为纯文本
+        	boolean isText = DocxProcessUtil.isText((P)pList.get(0));
             if(isText){
-            	String tmpText = DocxProcessUtil.getPText((P)pList.get(0));
+            	tmpText = DocxProcessUtil.getPText((P)pList.get(0));
                 //如果四个选项在同一行,长度不能超过64
                 if(optionsLength(tmpText)<18){
                 	four ++;
                 }else if(optionsLength(tmpText)<42){
-                	two ++;
+                	//什么都不做
                 }else {
     				return 1;
     			}
@@ -625,24 +622,20 @@ public abstract class ExportPaperAbstractService {
             //首选项添加tabs标签
     		if(i%4==0){
     			isAddTbale = true;
-        		if(pList.size()>0){
-    				P p = (P) pList.get(0);
-    				//添加tabs标签
-    				addTabs(p,3);
-                    StringBuffer pWordMl = new StringBuffer();
-                    for(Object pObj:pList){
-                        if(pObj instanceof P){
-                            pWordMl.append(DocxProcessUtil.formatPWordMl(XmlUtils.marshaltoString(pObj)));
-                        }
+				P p = (P) pList.get(0);
+				//添加tabs标签
+				addTabs(p,3);
+                StringBuffer pWordMl = new StringBuffer();
+                for(Object pObj:pList){
+                    if(pObj instanceof P){
+                        pWordMl.append(DocxProcessUtil.formatPWordMl(XmlUtils.marshaltoString(pObj)));
                     }
-                    quesOption.setOptionBodyWord(pWordMl.toString());
-        		}
+                }
+                quesOption.setOptionBodyWord(pWordMl.toString());
     		}else{
-    			if(pList.size()>0){
-    				String tmpText = DocxProcessUtil.getPText((P)pList.get(0));
-        			optionMerge(optionList.get((i/4)*4),tmpText,isAddTbale);
-        			quesOption.setOptionBodyWord("");
-    			}
+				String tmpText = DocxProcessUtil.getPText((P)pList.get(0));
+				optionMerge(optionList.get((i/4)*4),tmpText,isAddTbale);
+				quesOption.setOptionBodyWord("");
     		}
     	}
 	}