jvs-pptxtojson 0.0.2 → 0.0.4
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/.babelrc.cjs +15 -0
- package/.eslintignore +3 -0
- package/.eslintrc.cjs +78 -0
- package/PPTX_OOXML_/350/247/243/346/236/220/345/256/214/346/225/264/350/257/264/346/230/216.md +538 -0
- package/README.md +248 -243
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/favicon.ico +0 -0
- package/index.html +553 -0
- package/package.json +48 -55
- package/parsed_result.json +35569 -0
- package/pptx_standard_xml.txt +451 -0
- package/rollup.config.js +50 -0
- package/src/animation.js +81 -0
- package/src/border.js +154 -0
- package/src/chart.js +227 -0
- package/src/color.js +178 -0
- package/src/constants.js +3 -0
- package/src/diagram.js +132 -0
- package/src/fill.js +936 -0
- package/src/fontStyle.js +253 -0
- package/src/math.js +184 -0
- package/src/paragraph.js +253 -0
- package/src/position.js +32 -0
- package/src/pptxtojson.js +1361 -0
- package/src/readXmlFile.js +52 -0
- package/src/schemeColor.js +56 -0
- package/src/shadow.js +19 -0
- package/src/shape.js +539 -0
- package/src/shapePath.js +4637 -0
- package/src/table.js +207 -0
- package/src/text.js +228 -0
- package/src/textInsets.js +64 -0
- package/src/utils.js +202 -0
- package/test_parse.js +34 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# 🎨 pptxtojson
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/pptxtojson)
|
|
4
4
|
[](https://www.npmjs.com/package/pptxtojson)
|
|
@@ -10,40 +10,39 @@
|
|
|
10
10
|
一个运行在浏览器中,可以将 .pptx 文件转为可读的 JSON 数据的 JavaScript 库。
|
|
11
11
|
|
|
12
12
|
> 与其他的pptx文件解析工具的最大区别在于:
|
|
13
|
-
>
|
|
14
13
|
> 1. 直接运行在浏览器端;
|
|
15
14
|
> 2. 解析结果是**可读**的 JSON 数据,而不仅仅是把 XML 文件内容原样翻译成难以理解的 JSON。
|
|
16
15
|
|
|
17
|
-
在线DEMO
|
|
16
|
+
在线DEMO:https://pipipi-pikachu.github.io/pptxtojson/
|
|
18
17
|
|
|
19
|
-
> 国内镜像(定期同步):[GitCode](https://gitcode.com/pipipi-pikachu/pptxtojson)
|
|
18
|
+
> 国内镜像(定期同步):[Gitee](https://gitee.com/pptist/pptxtojson)、[GitCode](https://gitcode.com/pipipi-pikachu/pptxtojson)
|
|
20
19
|
|
|
21
20
|
# 🎯 注意事项
|
|
22
|
-
|
|
23
21
|
### ⚒️ 使用场景
|
|
24
|
-
|
|
25
|
-
希望为其“导入 .pptx 文件功能”提供一个参考示例。不过就目前来说,解析出来的PPT信息与源文件在样式上还是存在差异。
|
|
22
|
+
本仓库诞生于项目 [PPTist](https://github.com/pipipi-pikachu/PPTist) ,希望为其“导入 .pptx 文件功能”提供一个参考示例。不过就目前来说,解析出来的PPT信息与源文件在样式上还是存在差异。
|
|
26
23
|
|
|
27
24
|
但如果你只是需要提取PPT文件的文本内容、媒体资源信息、结构信息等,或者对排版/样式精准度没有特别高的要求,那么 pptxtojson 可能会对你有帮助。
|
|
28
25
|
|
|
29
|
-
###
|
|
26
|
+
### 🎨 样式继承与颜色处理
|
|
27
|
+
为了提高解析准确性,本项目现已支持:
|
|
28
|
+
- **主题样式继承**:支持解析 `a:fillRef` 和 `a:lnRef`,自动从主题样式矩阵(`fillStyleLst`、`lnStyleLst`)中拉取对应的填充、边框属性(包含拐角、线端、复合线及线头线尾箭头样式),并正确支持占位颜色(`phClr`)替换。
|
|
29
|
+
- **完善的颜色转换**:全面支持 `a:hslClr` 颜色解析与 HSL 转换为 RGB。支持对色相调和、明暗调和等各种颜色修饰节点(`shade`, `tint`, `lumMod`, `lumOff`, `satMod`, `hueMod` 等)进行高健壮度的万分比与百分比多格式解析。
|
|
30
|
+
- **全局字体色回退**:补全文本颜色最后一步的 fallback 链路,未声明颜色时将正确回退到全局默认文本样式(`defaultTextStyle`)。
|
|
30
31
|
|
|
32
|
+
### 📏 长度值单位
|
|
31
33
|
输出的JSON中,所有数值长度值单位都为`pt`(point)
|
|
32
34
|
|
|
33
35
|
# 🔨安装
|
|
34
|
-
|
|
35
36
|
```
|
|
36
37
|
npm install pptxtojson
|
|
37
38
|
```
|
|
38
39
|
|
|
39
40
|
# 💿用法
|
|
40
|
-
|
|
41
41
|
```javascript
|
|
42
42
|
parse(file, options = {})
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
### 浏览器示例
|
|
46
|
-
|
|
47
46
|
```html
|
|
48
47
|
<input type="file" accept="application/vnd.openxmlformats-officedocument.presentationml.presentation"/>
|
|
49
48
|
```
|
|
@@ -52,23 +51,22 @@ parse(file, options = {})
|
|
|
52
51
|
import { parse } from 'pptxtojson'
|
|
53
52
|
|
|
54
53
|
document.querySelector('input').addEventListener('change', evt => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
54
|
+
const file = evt.target.files[0]
|
|
55
|
+
|
|
56
|
+
const reader = new FileReader()
|
|
57
|
+
reader.onload = async e => {
|
|
58
|
+
const json = await parse(e.target.result, {
|
|
59
|
+
imageMode: 'base64',
|
|
60
|
+
videoMode: 'none',
|
|
61
|
+
audioMode: 'none',
|
|
62
|
+
})
|
|
63
|
+
console.log(json)
|
|
64
|
+
}
|
|
65
|
+
reader.readAsArrayBuffer(file)
|
|
67
66
|
})
|
|
68
67
|
```
|
|
69
68
|
|
|
70
69
|
### Node.js 示例(实验性,1.5.0以上版本)
|
|
71
|
-
|
|
72
70
|
```javascript
|
|
73
71
|
const pptxtojson = require('pptxtojson/dist/index.cjs')
|
|
74
72
|
const fs = require('fs')
|
|
@@ -88,64 +86,65 @@ func()
|
|
|
88
86
|
```
|
|
89
87
|
|
|
90
88
|
### 输出示例
|
|
91
|
-
|
|
92
89
|
```javascript
|
|
93
90
|
{
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
91
|
+
"slides": [
|
|
92
|
+
{
|
|
93
|
+
"fill": {
|
|
94
|
+
"type": "color",
|
|
95
|
+
"value": "#FF0000"
|
|
96
|
+
},
|
|
97
|
+
"elements": [
|
|
98
|
+
{
|
|
99
|
+
"left": 0,
|
|
100
|
+
"top": 0,
|
|
101
|
+
"width": 72,
|
|
102
|
+
"height": 72,
|
|
103
|
+
"borderColor": "#1F4E79",
|
|
104
|
+
"borderWidth": 1,
|
|
105
|
+
"borderType": "solid",
|
|
106
|
+
"borderStrokeDasharray": 0,
|
|
107
|
+
"borderLineJoin": "miter",
|
|
108
|
+
"borderLineCap": "flat",
|
|
109
|
+
"borderCompoundType": "sng",
|
|
110
|
+
"fill": {
|
|
111
|
+
"type": "color",
|
|
112
|
+
"value": "#FF0000"
|
|
113
|
+
},
|
|
114
|
+
"content": "<p style=\"text-align: center;\"><span style=\"font-size: 18pt;font-family: Calibri;\">TEST</span></p>",
|
|
115
|
+
"isFlipV": false,
|
|
116
|
+
"isFlipH": false,
|
|
117
|
+
"rotate": 0,
|
|
118
|
+
"vAlign": "mid",
|
|
119
|
+
"name": "矩形 1",
|
|
120
|
+
"type": "shape",
|
|
121
|
+
"shapType": "rect"
|
|
122
|
+
},
|
|
123
|
+
// more...
|
|
124
|
+
],
|
|
125
|
+
"layoutElements": [
|
|
126
|
+
// more...
|
|
127
|
+
],
|
|
128
|
+
"note": "演讲者备注内容..."
|
|
129
|
+
},
|
|
130
|
+
// more...
|
|
131
|
+
],
|
|
132
|
+
"themeColors": ['#4472C4', '#ED7D31', '#A5A5A5', '#FFC000', '#5B9BD5', '#70AD47'],
|
|
133
|
+
"size": {
|
|
134
|
+
"width": 960,
|
|
135
|
+
"height": 540
|
|
136
|
+
}
|
|
137
137
|
}
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
# 🎲 Options 配置说明
|
|
141
|
-
>
|
|
142
141
|
> options 为可选参数,不传时使用默认配置。
|
|
143
142
|
|
|
144
143
|
- `imageMode`:控制图片资源的解析方式,可选值为 `base64`、`blob`、`both`、`none`,默认值为 `base64`。
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
144
|
+
- `base64` 表示仅解析 `base64`。
|
|
145
|
+
- `blob` 表示仅解析 `blob`。
|
|
146
|
+
- `both` 表示同时解析 `base64` 和 `blob`。
|
|
147
|
+
- `none` 表示不解析图片内容。
|
|
149
148
|
|
|
150
149
|
- `videoMode`:控制视频资源的解析方式,可选值为 `blob`、`none`,默认值为 `none`。
|
|
151
150
|
- `blob` 表示解析视频 `blob`。
|
|
@@ -156,14 +155,13 @@ func()
|
|
|
156
155
|
- `none` 表示不解析音频内容。
|
|
157
156
|
|
|
158
157
|
# 🕰️ 旧版本说明
|
|
159
|
-
|
|
160
158
|
- 在0.x版本中,所有输出的长度值单位都是px(像素)
|
|
161
159
|
- 在1.x及以下版本:
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
160
|
+
- 图片元素使用 `src` 字段返回 base64 数据;
|
|
161
|
+
- 图片填充仅返回 `picBase64`;
|
|
162
|
+
- 视频元素可能返回 `blob` 或 `src`;
|
|
163
|
+
- 音频元素仅返回 `blob`;
|
|
164
|
+
- 公式图片仅返回 `picBase64`;
|
|
167
165
|
|
|
168
166
|
# 📕 解析属性
|
|
169
167
|
|
|
@@ -172,180 +170,187 @@ func()
|
|
|
172
170
|
- 内置字体清单 `usedFonts`
|
|
173
171
|
|
|
174
172
|
- 幻灯片尺寸 `size`
|
|
175
|
-
|
|
176
|
-
|
|
173
|
+
- 宽度 `width`
|
|
174
|
+
- 高度 `height`
|
|
177
175
|
|
|
178
176
|
- 幻灯片页面 `slides`
|
|
179
177
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
178
|
+
- 页面备注 `note`
|
|
179
|
+
|
|
180
|
+
- 页面背景填充(颜色、图片、渐变、图案) `fill`
|
|
181
|
+
- 纯色填充 `type='color'`
|
|
182
|
+
- 图片填充 `type='image'`
|
|
183
|
+
- 渐变填充 `type='gradient'`
|
|
184
|
+
- 图案填充 `type='pattern'`
|
|
185
|
+
|
|
186
|
+
- 页面切换动画 `transition`
|
|
187
|
+
- 类型 `type`
|
|
188
|
+
- 持续时间 `duration`
|
|
189
|
+
- 方向 `direction`
|
|
190
|
+
|
|
191
|
+
- 页面内元素 `elements` / 母版元素 `layoutElements`
|
|
192
|
+
- 文字
|
|
193
|
+
- 类型 `type='text'`
|
|
194
|
+
- 水平坐标 `left`
|
|
195
|
+
- 垂直坐标 `top`
|
|
196
|
+
- 宽度 `width`
|
|
197
|
+
- 高度 `height`
|
|
198
|
+
- 边框颜色 `borderColor`
|
|
199
|
+
- 边框宽度 `borderWidth`
|
|
200
|
+
- 边框类型(实线、点线、虚线) `borderType`
|
|
201
|
+
- 非实线边框样式 `borderStrokeDasharray`
|
|
202
|
+
- 边框拐角样式(`round`、`miter`、`bevel`) `borderLineJoin`
|
|
203
|
+
- 边框线端样式(`flat`、`round`、`sq`) `borderLineCap`
|
|
204
|
+
- 复合线类型(`sng`、`dbl`、`thickThin`、`thinThick`、`tri`) `borderCompoundType`
|
|
205
|
+
- 线头箭头样式(`type`、`width`、`length`) `borderHeadEnd`
|
|
206
|
+
- 线尾箭头样式(`type`、`width`、`length`) `borderTailEnd`
|
|
207
|
+
- 阴影 `shadow`
|
|
208
|
+
- 填充(颜色、图片、渐变、图案) `fill`
|
|
209
|
+
- 内容文字(HTML富文本) `content`:
|
|
210
|
+
- 行内样式/结构:字体、字号、颜色、渐变、下划线、删除线、斜体、加粗、字间距、阴影、角标、超链接
|
|
211
|
+
- 块级样式/结构:水平对齐、行距、段间距、缩进、首行缩进、项目符号、编号列表
|
|
212
|
+
- 垂直翻转 `isFlipV`
|
|
213
|
+
- 水平翻转 `isFlipH`
|
|
214
|
+
- 旋转角度 `rotate`
|
|
215
|
+
- 垂直对齐方向 `vAlign`
|
|
216
|
+
- 是否为竖向文本 `isVertical`
|
|
217
|
+
- 元素名 `name`
|
|
218
|
+
- 自动调整大小 `autoFit`
|
|
219
|
+
- 类型 `type`
|
|
220
|
+
- `shape`:文本框高度会根据文本内容自动调整
|
|
221
|
+
- `text`:文本框大小固定,字号会自动缩放以适应文本框(注:autoFit不存在时,也会固定文本框大小,但字号不会缩放)
|
|
222
|
+
- 字体缩放比例(type='text'专有,默认为1) `fontScale`
|
|
223
|
+
- 文本内边距(4边) `textInset`
|
|
224
|
+
- 超链接 `link`
|
|
225
|
+
|
|
226
|
+
- 图片
|
|
227
|
+
- 类型 `type='image'`
|
|
228
|
+
- 水平坐标 `left`
|
|
229
|
+
- 垂直坐标 `top`
|
|
230
|
+
- 宽度 `width`
|
|
231
|
+
- 高度 `height`
|
|
232
|
+
- 边框颜色 `borderColor`
|
|
233
|
+
- 边框宽度 `borderWidth`
|
|
234
|
+
- 边框类型(实线、点线、虚线) `borderType`
|
|
235
|
+
- 非实线边框样式 `borderStrokeDasharray`
|
|
236
|
+
- 裁剪形状 `geom`
|
|
237
|
+
- 裁剪范围 `rect`
|
|
238
|
+
- 资源引用路径 `ref`
|
|
239
|
+
- 图片base64 `base64`
|
|
240
|
+
- 图片blob `blob`
|
|
241
|
+
- 旋转角度 `rotate`
|
|
242
|
+
- 滤镜 `filters`
|
|
243
|
+
- 超链接 `link`
|
|
244
|
+
|
|
245
|
+
- 形状
|
|
246
|
+
- 类型 `type='shape'`
|
|
247
|
+
- 水平坐标 `left`
|
|
248
|
+
- 垂直坐标 `top`
|
|
249
|
+
- 宽度 `width`
|
|
250
|
+
- 高度 `height`
|
|
251
|
+
- 边框颜色 `borderColor`
|
|
252
|
+
- 边框宽度 `borderWidth`
|
|
253
|
+
- 边框类型(实线、点线、虚线) `borderType`
|
|
254
|
+
- 非实线边框样式 `borderStrokeDasharray`
|
|
255
|
+
- 边框拐角样式(`round`、`miter`、`bevel`) `borderLineJoin`
|
|
256
|
+
- 边框线端样式(`flat`、`round`、`sq`) `borderLineCap`
|
|
257
|
+
- 复合线类型(`sng`、`dbl`、`thickThin`、`thinThick`、`tri`) `borderCompoundType`
|
|
258
|
+
- 线头箭头样式(`type`、`width`、`length`) `borderHeadEnd`
|
|
259
|
+
- 线尾箭头样式(`type`、`width`、`length`) `borderTailEnd`
|
|
260
|
+
- 阴影 `shadow`
|
|
261
|
+
- 填充(颜色、图片、渐变、图案) `fill`
|
|
262
|
+
- 内容文字(HTML富文本,与文字元素一致) `content`
|
|
263
|
+
- 垂直翻转 `isFlipV`
|
|
264
|
+
- 水平翻转 `isFlipH`
|
|
265
|
+
- 旋转角度 `rotate`
|
|
266
|
+
- 形状类型 `shapType`
|
|
267
|
+
- 垂直对齐方向 `vAlign`
|
|
268
|
+
- 形状路径 `path`
|
|
269
|
+
- 形状调整参数 `keypoints`
|
|
270
|
+
- 元素名 `name`
|
|
271
|
+
- 自动调整大小 `autoFit`
|
|
272
|
+
- 文本内边距(4边) `textInset`
|
|
273
|
+
- 超链接 `link`
|
|
274
|
+
|
|
275
|
+
- 表格
|
|
276
|
+
- 类型 `type='table'`
|
|
277
|
+
- 水平坐标 `left`
|
|
278
|
+
- 垂直坐标 `top`
|
|
279
|
+
- 宽度 `width`
|
|
280
|
+
- 高度 `height`
|
|
281
|
+
- 边框(4边) `borders`
|
|
282
|
+
- 单元格样式与数据 `data`
|
|
283
|
+
- 行高 `rowHeights`
|
|
284
|
+
- 列宽 `colWidths`
|
|
285
|
+
|
|
286
|
+
- 图表
|
|
287
|
+
- 类型 `type='chart'`
|
|
288
|
+
- 水平坐标 `left`
|
|
289
|
+
- 垂直坐标 `top`
|
|
290
|
+
- 宽度 `width`
|
|
291
|
+
- 高度 `height`
|
|
292
|
+
- 图表数据 `data`
|
|
293
|
+
- 图表主题色 `colors`
|
|
294
|
+
- 图表类型 `chartType`
|
|
295
|
+
- 柱状图方向 `barDir`
|
|
296
|
+
- 是否带数据标记 `marker`
|
|
297
|
+
- 环形图尺寸 `holeSize`
|
|
298
|
+
- 分组模式 `grouping`
|
|
299
|
+
- 图表样式 `style`
|
|
300
|
+
|
|
301
|
+
- 视频
|
|
302
|
+
- 类型 `type='video'`
|
|
303
|
+
- 水平坐标 `left`
|
|
304
|
+
- 垂直坐标 `top`
|
|
305
|
+
- 宽度 `width`
|
|
306
|
+
- 高度 `height`
|
|
307
|
+
- 资源引用路径 `ref`
|
|
308
|
+
- 视频blob `blob`
|
|
309
|
+
|
|
310
|
+
- 音频
|
|
311
|
+
- 类型 `type='audio'`
|
|
312
|
+
- 水平坐标 `left`
|
|
313
|
+
- 垂直坐标 `top`
|
|
314
|
+
- 宽度 `width`
|
|
315
|
+
- 高度 `height`
|
|
316
|
+
- 资源引用路径 `ref`
|
|
317
|
+
- 音频blob `blob`
|
|
318
|
+
|
|
319
|
+
- 公式
|
|
320
|
+
- 类型 `type='math'`
|
|
321
|
+
- 水平坐标 `left`
|
|
322
|
+
- 垂直坐标 `top`
|
|
323
|
+
- 宽度 `width`
|
|
324
|
+
- 高度 `height`
|
|
325
|
+
- 公式图片引用路径 `picRef`
|
|
326
|
+
- 公式图片base64 `picBase64`
|
|
327
|
+
- 公式图片blob `picBlob`
|
|
328
|
+
- LaTeX表达式(仅支持常见结构) `latex`
|
|
329
|
+
- 文本(文本和公式混排时存在) `text`
|
|
330
|
+
|
|
331
|
+
- Smart图
|
|
332
|
+
- 类型 `type='diagram'`
|
|
333
|
+
- 水平坐标 `left`
|
|
334
|
+
- 垂直坐标 `top`
|
|
335
|
+
- 宽度 `width`
|
|
336
|
+
- 高度 `height`
|
|
337
|
+
- 子元素集合 `elements`
|
|
338
|
+
- 文本列表(Smart图中的文字内容清单) `textList`
|
|
339
|
+
|
|
340
|
+
- 多元素组合
|
|
341
|
+
- 类型 `type='group'`
|
|
342
|
+
- 水平坐标 `left`
|
|
343
|
+
- 垂直坐标 `top`
|
|
344
|
+
- 宽度 `width`
|
|
345
|
+
- 高度 `height`
|
|
346
|
+
- 子元素集合 `elements`
|
|
339
347
|
|
|
340
348
|
### 更详细类型请参考 👇
|
|
341
|
-
|
|
342
349
|
[https://github.com/pipipi-pikachu/pptxtojson/blob/master/dist/index.d.ts](https://github.com/pipipi-pikachu/pptxtojson/blob/master/dist/index.d.ts)
|
|
343
350
|
|
|
344
351
|
# 🙏 感谢
|
|
345
|
-
|
|
346
352
|
本仓库大量参考了 [PPTX2HTML](https://github.com/g21589/PPTX2HTML) 和 [PPTXjs](https://github.com/meshesha/PPTXjs) 的实现。
|
|
347
353
|
> 与它们不同的是:pptxtojson 不是将PPT文件转换为 HTML 页面,而是转换为干净、易读的 JSON 数据,且在原有基础上进行了大量优化补充,大幅提升了提取信息的完整度和准确度。
|
|
348
354
|
|
|
349
355
|
# 📄 开源协议
|
|
350
|
-
|
|
351
356
|
MIT License | Copyright © 2020-PRESENT [pipipi-pikachu](https://github.com/pipipi-pikachu)
|