@netless/window-manager 0.4.49 → 0.4.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -2
- package/LICENSE.txt +21 -0
- package/README.md +3 -3
- package/README.zh-cn.md +3 -3
- package/dist/index.cjs.js +13 -13
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +177 -58
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +13 -13
- package/dist/index.umd.js.map +1 -1
- package/docs/export-pdf.md +46 -0
- package/package.json +20 -15
- package/src/AppManager.ts +3 -0
- package/pnpm-lock.yaml +0 -4901
@@ -0,0 +1,46 @@
|
|
1
|
+
# 导出 PDF
|
2
|
+
|
3
|
+
此功能需要额外安装 `jspdf` 依赖才能使用
|
4
|
+
|
5
|
+
```
|
6
|
+
npm install jspdf@2.5.1
|
7
|
+
```
|
8
|
+
|
9
|
+
### 支持的 app 及版本
|
10
|
+
|
11
|
+
1. @netless/app-slide `0.2.23` 及以上版本支持保存动态 ppt 板书
|
12
|
+
|
13
|
+
2. @netless/app-docs-viewer `0.2.10` 及以上版本支持保存 pdf 板书, **注意** app-docs-viewer 中可以展示静态 ppt, pdf, 动态 ppt. 其中只有 pdf 文件支持保存板书
|
14
|
+
|
15
|
+
对应 @netless/window-manager `0.4.50` 及以上
|
16
|
+
|
17
|
+
### 发起保存板书任务
|
18
|
+
|
19
|
+
通过 `window.postMessage` 发事件来发起保存板书任务, 注意不要在任务尚未完成之前重复发送该事件.
|
20
|
+
|
21
|
+
```js
|
22
|
+
window.postMessage({
|
23
|
+
type: "@netless/_request_save_pdf_",
|
24
|
+
appId: /* windowManager.addApp 返回的值, 指定要保存哪个窗口的板书, */
|
25
|
+
})
|
26
|
+
```
|
27
|
+
|
28
|
+
### 获取任务进度
|
29
|
+
|
30
|
+
任务进度也通过 message 事件传递, 你需要在发起任务之前监听任务进度事件, 实例代码如下所示.
|
31
|
+
其中 data.result 只有在任务成功时候才有值, 任务失败或者任务进行中都为 Null.
|
32
|
+
如果下载任务失败, 则 progress 为 100 但是 result 为 Null.
|
33
|
+
|
34
|
+
```js
|
35
|
+
window.addEventListener("message", evt => {
|
36
|
+
if (evt.data.type === "@netless/_result_save_pdf_") {
|
37
|
+
console.log(evt.data);
|
38
|
+
// data 包含如下属性
|
39
|
+
// data.type: 固定值 "@netless/_result_save_pdf_"
|
40
|
+
// data.appId: 指明是哪次下载任务, 与发起保存板书时候传递的 appId 值一致
|
41
|
+
// data.progress: 下载进度, 0 ~ 100
|
42
|
+
// data.result: ArrayBuffer 或者 Null, 值为板书的 pdf 文件内容, 仅当下载进度 100 时才有值.
|
43
|
+
// 获取到 ArrayBuffer 后需要自行完成下载到本地的逻辑.
|
44
|
+
}
|
45
|
+
});
|
46
|
+
```
|
package/package.json
CHANGED
@@ -1,26 +1,22 @@
|
|
1
1
|
{
|
2
2
|
"name": "@netless/window-manager",
|
3
|
-
"version": "0.4.
|
3
|
+
"version": "0.4.51",
|
4
4
|
"description": "",
|
5
5
|
"main": "dist/index.cjs.js",
|
6
6
|
"module": "dist/index.es.js",
|
7
7
|
"types": "dist/index.d.ts",
|
8
8
|
"repository": "netless-io/window-manager",
|
9
|
-
"
|
10
|
-
|
11
|
-
"build": "vite build && yarn type-gen",
|
12
|
-
"type-gen": "tsc --emitDeclarationOnly",
|
13
|
-
"predev": "yarn type-gen",
|
14
|
-
"build:lib:types": "tsc --emitDeclarationOnly",
|
15
|
-
"lint": "eslint --ext .ts,.tsx,.svelte . && prettier --check .",
|
16
|
-
"test": "vitest"
|
17
|
-
},
|
18
|
-
"keywords": [],
|
19
|
-
"author": "",
|
20
|
-
"license": "ISC",
|
9
|
+
"author": "l1shen <lishen1635@gmail.com> (https://github.com/l1shen)",
|
10
|
+
"license": "MIT",
|
21
11
|
"peerDependencies": {
|
12
|
+
"jspdf": "2.5.1",
|
22
13
|
"white-web-sdk": "^2.16.0"
|
23
14
|
},
|
15
|
+
"peerDependenciesMeta": {
|
16
|
+
"jspdf": {
|
17
|
+
"optional": true
|
18
|
+
}
|
19
|
+
},
|
24
20
|
"dependencies": {
|
25
21
|
"@juggle/resize-observer": "^3.3.1",
|
26
22
|
"@netless/telebox-insider": "0.2.27",
|
@@ -32,7 +28,7 @@
|
|
32
28
|
"video.js": ">=7"
|
33
29
|
},
|
34
30
|
"devDependencies": {
|
35
|
-
"@netless/app-docs-viewer": "^0.2.
|
31
|
+
"@netless/app-docs-viewer": "^0.2.11",
|
36
32
|
"@netless/app-media-player": "0.1.0-beta.5",
|
37
33
|
"@rollup/plugin-commonjs": "^20.0.0",
|
38
34
|
"@rollup/plugin-node-resolve": "^13.0.4",
|
@@ -62,5 +58,14 @@
|
|
62
58
|
"vite": "^2.5.3",
|
63
59
|
"vitest": "^0.14.1",
|
64
60
|
"white-web-sdk": "2.16.33"
|
61
|
+
},
|
62
|
+
"scripts": {
|
63
|
+
"prettier": "prettier --write .",
|
64
|
+
"build": "vite build && yarn type-gen",
|
65
|
+
"type-gen": "tsc --emitDeclarationOnly",
|
66
|
+
"predev": "yarn type-gen",
|
67
|
+
"build:lib:types": "tsc --emitDeclarationOnly",
|
68
|
+
"lint": "eslint --ext .ts,.tsx,.svelte . && prettier --check .",
|
69
|
+
"test": "vitest"
|
65
70
|
}
|
66
|
-
}
|
71
|
+
}
|
package/src/AppManager.ts
CHANGED
@@ -784,6 +784,9 @@ export class AppManager {
|
|
784
784
|
});
|
785
785
|
this.mainViewProxy.onReconnect();
|
786
786
|
await Promise.all(reconnected);
|
787
|
+
if (this.callbacksNode) {
|
788
|
+
this.onSceneChange(this.callbacksNode);
|
789
|
+
}
|
787
790
|
}
|
788
791
|
|
789
792
|
public notifyContainerRectUpdate(rect: TeleBoxRect) {
|