Explorar el Código

ppt r:embed 获取不到问题

黄琪勇 hace 11 horas
padre
commit
ebdbf7fafe
Se han modificado 2 ficheros con 11 adiciones y 3 borrados
  1. 8 2
      public/pptworker/pptJson.js
  2. 3 1
      src/libs/jsonTool.ts

+ 8 - 2
public/pptworker/pptJson.js

@@ -60032,15 +60032,21 @@
                            while (1)
                               switch ((e.prev = e.next)) {
                                  case 0:
+                                    //hqy
                                     if (
                                        ((s = null === r || void 0 === r || null === (a = r.blipFill) || void 0 === a ? void 0 : a.blip),
-                                       (l = s.attributes["r:embed"]),
+                                       (l = s.attributes && s.attributes["r:embed"]),
                                        l)
                                     ) {
                                        e.next = 4
                                        break
                                     }
-                                    return e.abrupt("return")
+                                    return e.abrupt("return",{
+                                      "url": "emptyImg",
+                                      "md5": "emptyImg",
+                                      "size": 0
+                                    })
+                                    //hqy
                                  case 4:
                                     if (
                                        ((c = n.Relationships.Relationship || []),

+ 3 - 1
src/libs/jsonTool.ts

@@ -73,7 +73,7 @@ function formatSlides(slides: any[]): any[] {
         }
       }
     }
-    ;(item.elements || []).map((el: any) => {
+    item.elements = (item.elements || []).filter((el: any) => {
       // 兼容块
       if (el.type === "shape") {
         if (el.gradient?.type == "linear" && !el.gradient?.colors) {
@@ -83,6 +83,8 @@ function formatSlides(slides: any[]): any[] {
           ]
         }
       }
+      // ppt 导入的时候  有些数据r:embed 获取不到数据 用emptyImg标记的这些垃圾数据 这里过滤掉
+      return el.src !== "emptyImg"
     })
     // 兼容动画 妙极课动画没有effect属性  先把妙极客的动画去掉  之后做兼容
     if (item.animations) {