Ver código fonte

完成备注解析。并修改help为List<string>

CrazyIter_Bin 4 anos atrás
pai
commit
21c5a25f4b

+ 3 - 3
HTEXLib/HTEXLib.csproj

@@ -4,9 +4,9 @@
     <Description>模板解析类型</Description>
     <Description>模板解析类型</Description>
     <PackageReleaseNotes>模板解析类型</PackageReleaseNotes>
     <PackageReleaseNotes>模板解析类型</PackageReleaseNotes>
     <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
     <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
-    <Version>2.1.2</Version>
-    <AssemblyVersion>2.1.2.2</AssemblyVersion>
-    <FileVersion>2.1.2.2</FileVersion>
+    <Version>2.1.4</Version>
+    <AssemblyVersion>2.1.4.4</AssemblyVersion>
+    <FileVersion>2.1.4.4</FileVersion>
   </PropertyGroup>
   </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
     <PackageReference Include="DocumentFormat.OpenXml" Version="2.11.3" />
     <PackageReference Include="DocumentFormat.OpenXml" Version="2.11.3" />

+ 1 - 0
HTEXLib/PPTX/Models/PPTX/PPTShapeBase.cs

@@ -12,6 +12,7 @@ namespace HTEXLib.Models.Inner
 {
 {
     public class PPTShapeBase
     public class PPTShapeBase
     {
     {
+        public List<string> note { get; set; }
         public List<HTEXLib.PPTX.Models.HyperLink> hyperlinks { get; set; } = new List<HTEXLib.PPTX.Models.HyperLink>();
         public List<HTEXLib.PPTX.Models.HyperLink> hyperlinks { get; set; } = new List<HTEXLib.PPTX.Models.HyperLink>();
         public OpenXmlPart openXmlPart { get; set; }
         public OpenXmlPart openXmlPart { get; set; }
 
 

+ 28 - 0
HTEXLib/PPTX/Models/PPTX/PPTSlide.cs

@@ -1,4 +1,5 @@
 using DocumentFormat.OpenXml;
 using DocumentFormat.OpenXml;
+using DocumentFormat.OpenXml.Drawing;
 using DocumentFormat.OpenXml.Packaging;
 using DocumentFormat.OpenXml.Packaging;
 using DocumentFormat.OpenXml.Presentation;
 using DocumentFormat.OpenXml.Presentation;
 using HTEXLib.Animations;
 using HTEXLib.Animations;
@@ -38,6 +39,33 @@ namespace HTEXLib.Models
             //TODO 处理layout 及 master 的 Transition Timing。
             //TODO 处理layout 及 master 的 Transition Timing。
             //master 和 layout 过渡效果直接覆盖给slide
             //master 和 layout 过渡效果直接覆盖给slide
             slideTransition =  AddTransition(openXmlPart.Slide.Transition, "slide");
             slideTransition =  AddTransition(openXmlPart.Slide.Transition, "slide");
+            //Console.
+            //var note= openXmlPart.NotesSlidePart.NotesSlide;
+            
+            if (openXmlPart.NotesSlidePart != null) {
+                note = new List<string>();
+                var Paragraphs = openXmlPart.NotesSlidePart.NotesSlide.Descendants<DocumentFormat.OpenXml.Drawing.Paragraph>();
+                foreach (var Paragraph in Paragraphs) {
+                    var chlds=  Paragraph.ChildElements;
+                    StringBuilder not= new StringBuilder();
+                    foreach (var chil in chlds) {
+                        if (chil is Field field)
+                        {
+                            if (field.Type != "slidenum")
+                            {
+                                not.Append(field.InnerText);
+                            }
+                        }
+                        else {
+                            not.Append(chil.InnerText);
+                        }
+                    }
+                    if (not.ToString().Length > 0) {
+                        note.Add(not.ToString());
+                    }
+                }
+                Console.WriteLine(openXmlPart.NotesSlidePart.NotesSlide.InnerText);
+            }
         }
         }
 
 
 
 

+ 1 - 1
HTEXLib/PPTX/Models/Slide.cs

@@ -65,7 +65,7 @@ namespace HTEXLib
         ///<summary>
         ///<summary>
         /// 解题思路或解题帮助提示,或者PPTX备注。
         /// 解题思路或解题帮助提示,或者PPTX备注。
         ///<summary>
         ///<summary>
-        public string help { get; set; }
+        public List<string> help { get; set; }
         public Dictionary<string,List<string>> itemGroup  { get;set; } = new Dictionary<string, List<string>>();
         public Dictionary<string,List<string>> itemGroup  { get;set; } = new Dictionary<string, List<string>>();
     }
     }
     public class ItemGroup { 
     public class ItemGroup { 

+ 6 - 6
HTEXLib/Translator/HTML2ITEMTranslator.cs

@@ -77,15 +77,15 @@ namespace HTEXLib.Translator
                 {
                 {
                     case "single":
                     case "single":
                         List<DOCX.Models.ItemInfo> exercisesSingle = SingleConvert(key, TestInType[key]);
                         List<DOCX.Models.ItemInfo> exercisesSingle = SingleConvert(key, TestInType[key]);
-                        exercisesSingle.ForEach(x => { x.pid = x.shaCode; });
+                       // exercisesSingle.ForEach(x => { x.pid = x.shaCode; });
                         tests.AddRange(exercisesSingle); break;
                         tests.AddRange(exercisesSingle); break;
                     case "multiple":
                     case "multiple":
                         List<DOCX.Models.ItemInfo> exercisesMultiple = MultipleConvert(key, TestInType[key]);
                         List<DOCX.Models.ItemInfo> exercisesMultiple = MultipleConvert(key, TestInType[key]);
-                        exercisesMultiple.ForEach(x => { x.pid = x.shaCode; });
+                        //exercisesMultiple.ForEach(x => { x.pid = x.shaCode; });
                         tests.AddRange(exercisesMultiple); break;
                         tests.AddRange(exercisesMultiple); break;
                     case "judge":
                     case "judge":
                         List<DOCX.Models.ItemInfo> exercisesJudge = JudgeConvert(key, TestInType[key]);
                         List<DOCX.Models.ItemInfo> exercisesJudge = JudgeConvert(key, TestInType[key]);
-                        exercisesJudge.ForEach(x => { x.pid = x.shaCode; });
+                        //exercisesJudge.ForEach(x => { x.pid = x.shaCode; });
                         tests.AddRange(exercisesJudge); break;
                         tests.AddRange(exercisesJudge); break;
                     //case "complete":
                     //case "complete":
                     //    List<ItemInfo> exercisesComplete = CompleteConvert(key, TestInType[key]);
                     //    List<ItemInfo> exercisesComplete = CompleteConvert(key, TestInType[key]);
@@ -97,12 +97,12 @@ namespace HTEXLib.Translator
                     //    tests.AddRange(exercisesSubjective); break;
                     //    tests.AddRange(exercisesSubjective); break;
                     case "compose":
                     case "compose":
                         List<DOCX.Models.ItemInfo> exercisesCompose = ComposeConvert(key, TestInType[key]);
                         List<DOCX.Models.ItemInfo> exercisesCompose = ComposeConvert(key, TestInType[key]);
-                        exercisesCompose.ForEach(x => { x.pid = x.shaCode; });
+                       // exercisesCompose.ForEach(x => { x.pid = x.shaCode; });
                         tests.AddRange(exercisesCompose);
                         tests.AddRange(exercisesCompose);
                         break;
                         break;
                     default:
                     default:
                         List<DOCX.Models.ItemInfo> exercisesOther = SubjectiveConvert(key, TestInType[key]);
                         List<DOCX.Models.ItemInfo> exercisesOther = SubjectiveConvert(key, TestInType[key]);
-                        exercisesOther.ForEach(x => { x.pid = x.shaCode; });
+                       // exercisesOther.ForEach(x => { x.pid = x.shaCode; });
                         tests.AddRange(exercisesOther); break;
                         tests.AddRange(exercisesOther); break;
                 }
                 }
             }
             }
@@ -355,7 +355,7 @@ namespace HTEXLib.Translator
                 {
                 {
                     dtos.ForEach(x => { testQs = testQs + x.shaCode; });
                     dtos.ForEach(x => { testQs = testQs + x.shaCode; });
                     exercise.shaCode = ShaHashHelper.GetSHA1(testQs);
                     exercise.shaCode = ShaHashHelper.GetSHA1(testQs);
-                    dtos.ForEach(x => { x.pid = exercise.shaCode;/* x.lite = true;*/ });
+                   // dtos.ForEach(x => { x.pid = exercise.shaCode;/* x.lite = true;*/ });
                     exercise.children.AddRange(dtos);
                     exercise.children.AddRange(dtos);
                 }
                 }
                 if (exercise.children.IsNotEmpty())
                 if (exercise.children.IsNotEmpty())

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 555
HTEXLib/Translator/HTML2ITEMTranslatorAlpha.cs


+ 3 - 2
HTEXLib/Translator/PPTX2HTEXTranslator.cs

@@ -13,13 +13,13 @@ namespace HTEXLib.Translator
     public   class PPTX2HTEXTranslator
     public   class PPTX2HTEXTranslator
     {
     {
         public Htex Translate(Stream stream) {
         public Htex Translate(Stream stream) {
-            PresentationDocument presentation = null;
+            PresentationDocument presentation;
             var htexBuilder = new HtexBuilder();
             var htexBuilder = new HtexBuilder();
             try {
             try {
 
 
                 XDocument document = XDocument.Load(stream);
                 XDocument document = XDocument.Load(stream);
                 presentation = PresentationDocument.FromFlatOpcDocument(document);
                 presentation = PresentationDocument.FromFlatOpcDocument(document);
-            } catch(Exception e) {
+            } catch {
                  presentation = PresentationDocument.Open(stream, false);
                  presentation = PresentationDocument.Open(stream, false);
             }
             }
             var pptSlides = htexBuilder.GetPPTSlides(presentation);
             var pptSlides = htexBuilder.GetPPTSlides(presentation);
@@ -42,6 +42,7 @@ namespace HTEXLib.Translator
                 slide.width = width;
                 slide.width = width;
                 slide.transition = pptSlide.slideTransition;
                 slide.transition = pptSlide.slideTransition;
                 slide.height = height;
                 slide.height = height;
+                slide.help = pptSlide.note;
                 slides.Add(slide);
                 slides.Add(slide);
                 slideCounter++;
                 slideCounter++;
                 lazyFiles.AddRange(pptSlide.lazyFiles);
                 lazyFiles.AddRange(pptSlide.lazyFiles);