diff --git a/answerLogBrower.txt b/answerLogBrower.txt deleted file mode 100644 index 01bc2585..00000000 --- a/answerLogBrower.txt +++ /dev/null @@ -1,8 +0,0 @@ -=== 学生提交内容(stu 目录) === - -> 文件夹 -文件名1.html -> 大小: 397103B, 隐藏: false, 可读: true, 可写: true -文件名2.html -> 大小: 397103B, 隐藏: false, 可读: true, 可写: true -=== 学生提交内容得分点 === -考点文件名1.html -> 得分权值:1-> 是否得分:true -考点文件名2.html -> 得分权值:1-> 是否得分:true -考点百度一下,你就知道 -> 得分权值:1-> 是否得分:false diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/ShapePage.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/ShapePage.java index 603aa719..9b690615 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/ShapePage.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/ShapePage.java @@ -1041,7 +1041,7 @@ public class ShapePage { for (CTTextParagraph paragraph : textBody.getP()) { if (paragraph.getPPr().getIndent() != null) { // 结果保留1位小数点 - String formattedNumber = String.format("%.1f", (double) paragraph.getPPr().getIndent() / 360000); + String formattedNumber = String.format("%.2f", (double) paragraph.getPPr().getIndent() / 360000); return formattedNumber + "厘米"; // EMU 转 pt } } @@ -1069,7 +1069,7 @@ public class ShapePage { CTTextBody textBody = sp.getTxBody(); // 遍历所有段落 for (CTTextParagraph paragraph : textBody.getP()) { - if (paragraph.getPPr().getSpcBef() != null) { + if (paragraph.getPPr().getSpcAft() != null) { return paragraph.getPPr().getSpcAft().getSpcPts().getVal() / 100 + "磅"; // EMU 转 pt } } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/ShapePic.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/ShapePic.java index 465b3ca3..ff121ad6 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/ShapePic.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/ShapePic.java @@ -1,6 +1,5 @@ package pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j; -import jakarta.xml.bind.JAXBElement; import org.docx4j.dml.*; import org.pptx4j.pml.*; import pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j.utils.PtToCmConverter; @@ -16,6 +15,54 @@ public class ShapePic { return "是"; } + // 媒体 放映时隐藏 + public static String getMediaHide(Pic sp, CTSlideTiming timing) { + // 获取ID + long id = sp.getNvPicPr().getCNvPr().getId(); + CTTimeNodeList ctTimeNodeList = timing.getTnLst(); + List parOrSeqOrExcl = ctTimeNodeList.getParOrSeqOrExcl(); + for (Object o : parOrSeqOrExcl) { + if (o instanceof CTTLTimeNodeParallel) { + CTTimeNodeList ctTimeNodes = ((CTTLTimeNodeParallel) o).getCTn().getChildTnLst(); + for (Object o1 : ctTimeNodes.getParOrSeqOrExcl()) { + if (o1 instanceof CTTLMediaNodeVideo) { + // 获取spId + String spId = ((CTTLMediaNodeVideo) o1).getCMediaNode().getTgtEl().getSpTgt().getSpid(); + if (String.valueOf(id).equals(spId)) { + return ((CTTLMediaNodeVideo) o1).getCMediaNode().isShowWhenStopped() ? "是" : "否"; + } + } + } + } + } + return ""; + } + + // 媒体 播放完返回开头 + public static String getMediaLoop(Pic sp, CTSlideTiming timing) { + // 获取ID + long id = sp.getNvPicPr().getCNvPr().getId(); + CTTimeNodeList ctTimeNodeList = timing.getTnLst(); + List parOrSeqOrExcl = ctTimeNodeList.getParOrSeqOrExcl(); + for (Object o : parOrSeqOrExcl) { + if (o instanceof CTTLTimeNodeParallel) { + CTTimeNodeList ctTimeNodes = ((CTTLTimeNodeParallel) o).getCTn().getChildTnLst(); + for (Object o1 : ctTimeNodes.getParOrSeqOrExcl()) { + if (o1 instanceof CTTLMediaNodeVideo) { + // 获取spId + String spId = ((CTTLMediaNodeVideo) o1).getCMediaNode().getTgtEl().getSpTgt().getSpid(); + if (String.valueOf(id).equals(spId)) { + STTLTimeNodeFillType sttlTimeNodeFillType = ((CTTLMediaNodeVideo) o1).getCMediaNode().getCTn().getFill(); + String value = sttlTimeNodeFillType.value(); + return value.equals("remove") ? "是" : "否"; + } + } + } + } + } + return ""; + } + // 自选图形 - 类型 public static String getShapeType(Pic sp, CTSlideTiming timing) { CTShapeProperties ctShapeProperties = sp.getSpPr(); diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/SlideSetting.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/SlideSetting.java index 9875858a..5bfa63eb 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/SlideSetting.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/SlideSetting.java @@ -102,7 +102,30 @@ public class SlideSetting { } return ""; } - + // 幻灯片切换 单机鼠标换片 + public static String getSlideTransitionMouse(SlidePart slidePart, PresentationMLPackage presentation, SlideMasterPart slideMasterPart) throws Docx4JException { + Sld slide = (Sld) slidePart.getContents(); + CTSlideTransition ctSlideTransition = slide.getTransition(); + if (ctSlideTransition != null) { + return ctSlideTransition.isAdvClick() ? "是" : "否"; + } + return ""; + } + // 幻灯片切换 效果 + public static String getSlideTransitionEffect(SlidePart slidePart, PresentationMLPackage presentation, SlideMasterPart slideMasterPart) throws Docx4JException { + Sld slide = (Sld) slidePart.getContents(); + CTSlideTransition ctSlideTransition = slide.getTransition(); + if (ctSlideTransition != null) { + String value = ctSlideTransition.getBlinds().getDir().value(); + if (value.equals("vert")) { + return "百叶窗->垂直"; + } + if (value.equals("horz")) { + return "百叶窗->水平"; + } + } + return ""; + } // 幻灯片切换 切换速度 public static String getSlideTransitionSpeed(SlidePart slidePart, PresentationMLPackage presentation, SlideMasterPart slideMasterPart) throws Docx4JException { Sld slide = (Sld) slidePart.getContents(); diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/utils/HexColorUtils.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/utils/HexColorUtils.java index 1abbd99e..970fc4b4 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/utils/HexColorUtils.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/utils/HexColorUtils.java @@ -106,7 +106,7 @@ public class HexColorUtils { // 查找颜色名 String name = COLOR_NAME_MAP.getOrDefault(hexKey, "未知颜色"); - + name = name.equals("未知颜色") ? "" : name; return String.format("%s RGB(%d,%d,%d)", name, r, g, b); }