diff --git a/src/main/resources/templates/print.html b/src/main/resources/templates/print.html
index 4554f2b..06a11b1 100644
--- a/src/main/resources/templates/print.html
+++ b/src/main/resources/templates/print.html
@@ -170,6 +170,14 @@
.answer-content.wrong {
color: #c00;
}
+ .drawing-answer-image {
+ display: block;
+ max-width: 100%;
+ max-height: 360px;
+ margin-top: 6px;
+ border: 1px solid #ddd;
+ background: white;
+ }
.score-get {
color: #c00;
font-weight: bold;
@@ -252,7 +260,7 @@
题目内容
@@ -309,6 +317,25 @@
+
+
+
+
+
答案:
+
未作答
+
+
+
+
+
+
+ 得分:
+
+
+
diff --git a/src/test/java/com/baobaot/exam/templates/PrintTemplateTest.java b/src/test/java/com/baobaot/exam/templates/PrintTemplateTest.java
new file mode 100644
index 0000000..c5084a9
--- /dev/null
+++ b/src/test/java/com/baobaot/exam/templates/PrintTemplateTest.java
@@ -0,0 +1,67 @@
+package com.baobaot.exam.templates;
+
+import com.baobaot.exam.dto.CorrectDetailItem;
+import com.baobaot.exam.dto.CorrectResult;
+import org.junit.jupiter.api.Test;
+import org.thymeleaf.spring6.SpringTemplateEngine;
+import org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver;
+import org.thymeleaf.TemplateEngine;
+import org.thymeleaf.context.Context;
+import org.springframework.context.support.GenericApplicationContext;
+
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class PrintTemplateTest {
+
+ private final TemplateEngine templateEngine = createTemplateEngine();
+
+ @Test
+ void rendersDrawingAnswerAsImageOnPrintPage() {
+ String imageData = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB";
+ CorrectResult data = CorrectResult.builder()
+ .answerUid("answer-1")
+ .studentName("张三")
+ .examTitle("Java试卷")
+ .choiceScore(0)
+ .finalScore(0)
+ .isCorrected(true)
+ .questions(List.of(CorrectDetailItem.builder()
+ .exmaid(1)
+ .qid(100)
+ .type(3)
+ .title("画出流程图")
+ .score(10)
+ .userAnswer(imageData)
+ .autoScore(8)
+ .build()))
+ .build();
+
+ Context context = new Context();
+ context.setVariable("data", data);
+
+ String html = templateEngine.process("print", context);
+
+ assertThat(html).contains("画图题");
+ assertThat(html).contains("
\n " + imageData);
+ }
+
+ private static TemplateEngine createTemplateEngine() {
+ GenericApplicationContext applicationContext = new GenericApplicationContext();
+ applicationContext.refresh();
+
+ SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
+ resolver.setApplicationContext(applicationContext);
+ resolver.setPrefix("classpath:/templates/");
+ resolver.setSuffix(".html");
+ resolver.setTemplateMode("HTML");
+ resolver.setCharacterEncoding("UTF-8");
+
+ SpringTemplateEngine engine = new SpringTemplateEngine();
+ engine.setTemplateResolver(resolver);
+ return engine;
+ }
+}