Просмотр исходного кода

fix(pptEasy): 修复PPT内容提取时忽略形状内文本的问题

提取PPT内容时,现在会同时处理文本元素和包含文本的形状元素,并移除其中的HTML标签
lsc 6 дней назад
Родитель
Сommit
b1aa1870fe
1 измененных файлов с 10 добавлено и 4 удалено
  1. 10 4
      src/components/pages/pptEasy/addCourse3.vue

+ 10 - 4
src/components/pages/pptEasy/addCourse3.vue

@@ -1924,9 +1924,12 @@ export default {
         _pptData2.slides.forEach((slide, index) => {
           let slideContent = ''
           if (slide.elements) {
-            const textElements = slide.elements.filter((element) => element.type === 'text')
+            const textElements = slide.elements.filter((element) => element.type === 'text' || (element.type === 'shape' && element.text?.content))
             if (textElements.length > 0) {
-              slideContent = textElements.map((element) => element.content).join(' ')
+              slideContent = textElements.map((element) => {
+                const content = element.type === 'text' ? element.content : element.text.content
+                return content.replace(/<[^>]*>/g, '')
+              }).join(' ')
             }
           }
           pptContent.push(`第${index + 1}页: ${slideContent || '内容为空'}`)
@@ -2040,9 +2043,12 @@ export default {
         _pptData2.slides.forEach((slide, index) => {
           let slideContent = ''
           if (slide.elements) {
-            const textElements = slide.elements.filter((element) => element.type === 'text')
+            const textElements = slide.elements.filter((element) => element.type === 'text' || (element.type === 'shape' && element.text?.content))
             if (textElements.length > 0) {
-              slideContent = textElements.map((element) => element.content).join(' ')
+              slideContent = textElements.map((element) => {
+                const content = element.type === 'text' ? element.content : element.text.content
+                return content.replace(/<[^>]*>/g, '')
+              }).join(' ')
             }
           }
           pptContent.push(`第${index + 1}页: ${slideContent || '内容为空'}`)