Forráskód Böngészése

导出模板增加页眉

xiatian 5 éve
szülő
commit
05f614ecd3

+ 10 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/util/DocxTemplateBean.java

@@ -13,7 +13,9 @@ public class DocxTemplateBean {
     private Template document;
 
     private Template documentRels;
-
+    
+    private Template header;
+    
     public String getKey() {
         return key;
     }
@@ -53,5 +55,12 @@ public class DocxTemplateBean {
     public void setDocxPath(String docxPath) {
         this.docxPath = docxPath;
     }
+    
+    public Template getHeader() {
+        return header;
+    }
 
+    public void setHeader(Template header) {
+        this.header = header;
+    }
 }

+ 22 - 0
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/util/ExportPaperUtil.java

@@ -195,6 +195,9 @@ public class ExportPaperUtil {
                 }
             }
         }
+        
+        // header
+        writePaperHeader(docxTargetDir, paperExp.getCourseName(), docxTemplate);
         // content-type
         writePaperContentType(docxTargetDir, dto, docxTemplate);
         // document
@@ -204,6 +207,25 @@ public class ExportPaperUtil {
         // image file
         writeImage(docxTargetDir, dto);
     }
+    
+    private static void writePaperHeader(File docxTargetDir, String courseName, DocxTemplateBean docxTemplate)
+            throws IOException {
+        Template head=docxTemplate.getHeader();
+        if(head==null) {
+            return;
+        }
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("courseName", courseName);
+        StringWriter result = null;
+        try {
+            result = new StringWriter();
+            head.process(map, result);
+        } catch (Exception e) {
+            throw new ExamCloudRuntimeException(e);
+        }
+        File file = new File(docxTargetDir.getAbsolutePath() + "/word/header1.xml");
+        FileUtils.writeStringToFile(file, result.toString(), "utf-8");
+    }
 
     private static void writePaperDocument(File docxTargetDir, PaperExp paperExp, DocxTemplateBean docxTemplate)
             throws IOException {

+ 4 - 0
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/util/ExportTemplateUtil.java

@@ -50,6 +50,10 @@ public class ExportTemplateUtil {
             bean.setContentTypes(config.getTemplate("content_types.ftl", ENCODING));
             bean.setDocument(config.getTemplate("document.ftl", ENCODING));
             bean.setDocumentRels(config.getTemplate("document_rels.ftl", ENCODING));
+            File head=new File(dir+File.separator+"header.ftl");
+            if(head.exists()) {
+                bean.setHeader(config.getTemplate("header.ftl", ENCODING));
+            }
         } catch (IOException e) {
             throw new StatusException("20001", "模板配置初始化出错 " + e.getMessage());
         }