Przeglądaj źródła

feat(pptEasy): 优化PPT内容提取并生成文本文件

修改PPT内容处理逻辑,将每页文本内容提取并格式化为易读的文本描述,同时将输出文件改为文本格式。主要变更包括:
1. 提取每页幻灯片中的文本内容并添加页码标记
2. 当页面无内容时显示"内容为空"
3. 将生成的描述文件格式从JSON改为纯文本
lsc 1 tydzień temu
rodzic
commit
84805a8c20

+ 11 - 7
src/components/pages/pptEasy/addCourse2.vue

@@ -1709,21 +1709,25 @@ export default {
       this.uploadWorkLoading = true;
       let _pptData = await this.getPPtJson();
       const _pptData2 = JSON.parse(JSON.stringify(_pptData))
+      const pptContent = []
       if (_pptData2.slides) {
-        _pptData2.slides.forEach((slide) => {
+        _pptData2.slides.forEach((slide, index) => {
+          let slideContent = ''
           if (slide.elements) {
-            slide.elements = slide.elements.filter((element) => element.type === 'text').map((element) => ({
-              type: element.type,
-              content: element.content
-            }))
+            const textElements = slide.elements.filter((element) => element.type === 'text')
+            if (textElements.length > 0) {
+              slideContent = textElements.map((element) => element.content).join(' ')
+            }
           }
+          pptContent.push(`第${index + 1}页: ${slideContent || '内容为空'}`)
         })
       }
+      const contentDescription = pptContent.join('\n')
       // 用_pptData生成json文件,并生成File对象
       const pptJsonStr = JSON.stringify(_pptData, null, 2);
-      const pptJsonStr2 = JSON.stringify(_pptData2, null, 2);
+      const pptJsonStr2 = contentDescription;
       const pptJsonFile = new File([pptJsonStr], this.courseName + ".json", { type: "application/json" });
-      const pptJsonFile2 = new File([pptJsonStr2], this.courseName + ".json", { type: "application/json" });
+      const pptJsonFile2 = new File([pptJsonStr2], this.courseName + ".text", { type: "text/plain" });
       // 你可以根据需要将pptJsonFile上传或保存
       console.log(_url)
       let _url = await this.uploadFile(pptJsonFile);

+ 11 - 7
src/components/pages/pptEasy/addCourse3.vue

@@ -1896,21 +1896,25 @@ export default {
       }
       let _pptData = await this.getPPtJson();
       const _pptData2 = JSON.parse(JSON.stringify(_pptData))
+      const pptContent = []
       if (_pptData2.slides) {
-        _pptData2.slides.forEach((slide) => {
+        _pptData2.slides.forEach((slide, index) => {
+          let slideContent = ''
           if (slide.elements) {
-            slide.elements = slide.elements.filter((element) => element.type === 'text').map((element) => ({
-              type: element.type,
-              content: element.content
-            }))
+            const textElements = slide.elements.filter((element) => element.type === 'text')
+            if (textElements.length > 0) {
+              slideContent = textElements.map((element) => element.content).join(' ')
+            }
           }
+          pptContent.push(`第${index + 1}页: ${slideContent || '内容为空'}`)
         })
       }
+      const contentDescription = pptContent.join('\n')
       // 用_pptData生成json文件,并生成File对象
       const pptJsonStr = JSON.stringify(_pptData, null, 2);
-      const pptJsonStr2 = JSON.stringify(_pptData2, null, 2);
+      const pptJsonStr2 = contentDescription;
       const pptJsonFile = new File([pptJsonStr], this.courseName + ".json", { type: "application/json" });
-      const pptJsonFile2 = new File([pptJsonStr2], this.courseName + ".json", { type: "application/json" });
+      const pptJsonFile2 = new File([pptJsonStr2], this.courseName + ".text", { type: "text/plain" });
       // 你可以根据需要将pptJsonFile上传或保存
       console.log(_url)
       let _url = await this.uploadFile(pptJsonFile);