pptxtojson 0.0.1 → 0.0.2

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/README.md CHANGED
@@ -8,6 +8,30 @@
8
8
  - 删除了所有非核心代码,仅关注 XML 的解析过程;
9
9
  - 输出 JSON 格式的解析结果;
10
10
 
11
+ # 🔨安装
12
+ > npm install pptxtojson
13
+
14
+ # 💿用法
15
+ ```html
16
+ <input type="file" accept="application/vnd.openxmlformats-officedocument.presentationml.presentation"/>
17
+ ```
18
+
19
+ ```js
20
+ import { parse } from 'pptxtojson/dist/index.esm'
21
+
22
+ document.querySelector('input').addEventListener('change', evt => {
23
+ const file = evt.target.files[0]
24
+
25
+ const reader = new FileReader()
26
+ reader.onload = async e => {
27
+ const json = await parse(e.target.result)
28
+ console.log(json)
29
+ }
30
+ reader.readAsArrayBuffer(file)
31
+ })
32
+ ```
33
+
34
+
11
35
  # 📄 开源协议
12
36
  GPL-3.0 LICENSE © [pipipi-pikachu](https://github.com/pipipi-pikachu)
13
37
 
@@ -0,0 +1,114 @@
1
+ export interface Shape {
2
+ type: 'shape'
3
+ left: number
4
+ top: number
5
+ width: number
6
+ height: number
7
+ cx: number
8
+ cy: number
9
+ borderColor: string
10
+ borderWidth: number
11
+ borderType: 'solid' | 'dashed'
12
+ fillColor: string
13
+ content: string
14
+ isFlipV: boolean
15
+ isFlipH: boolean
16
+ rotate: number
17
+ shapType: string
18
+ id: string
19
+ name: string
20
+ idx: number
21
+ }
22
+
23
+ export interface Text {
24
+ type: 'text'
25
+ left: number
26
+ top: number
27
+ width: number
28
+ height: number
29
+ borderColor: string
30
+ borderWidth: number
31
+ borderType: 'solid' | 'dashed'
32
+ fillColor: string
33
+ isFlipV: boolean
34
+ isFlipH: boolean
35
+ rotate: number
36
+ content: string
37
+ id: string
38
+ name: string
39
+ idx: number
40
+ }
41
+
42
+ export interface Image {
43
+ type: 'image'
44
+ left: number
45
+ top: number
46
+ width: number
47
+ height: number
48
+ src: string
49
+ rotate: number
50
+ }
51
+
52
+ export interface TableCell {
53
+ text: string
54
+ rowSpan?: number
55
+ colSpan?: number
56
+ vMerge?: boolean
57
+ hMerge?: boolean
58
+ }
59
+ export interface Table {
60
+ type: 'table'
61
+ left: number
62
+ top: number
63
+ width: number
64
+ height: number
65
+ data: TableCell[][]
66
+ }
67
+
68
+ export type ChartType = 'lineChart' | 'stackedBarChart' | 'barChart' | 'pieChart' | 'pie3DChart' | 'stackedAreaChart' | 'areaChart' | 'scatterChart'
69
+ export interface ChartValue {
70
+ x: string
71
+ y: number
72
+ }
73
+ export interface ChartXLabel {
74
+ [key: string]: string
75
+ }
76
+ export interface ChartItem {
77
+ key: string
78
+ values: ChartValue
79
+ xlabels: ChartXLabel
80
+ }
81
+ export interface Chart {
82
+ type: 'chart'
83
+ left: number
84
+ top: number
85
+ width: number
86
+ height: number
87
+ data: ChartItem[],
88
+ chartType: ChartType
89
+ }
90
+
91
+ export interface Diagram {
92
+ type: 'diagram'
93
+ left: number
94
+ top: number
95
+ width: number
96
+ height: number
97
+ }
98
+
99
+ export type BaseElement = Shape | Text | Image | Table | Chart | Diagram
100
+
101
+ export interface Group {
102
+ type: 'group'
103
+ left: number
104
+ top: number
105
+ width: number
106
+ height: number
107
+ elements: BaseElement[],
108
+ }
109
+ export type Element = BaseElement | Group
110
+
111
+ export interface Slide {
112
+ fill: string
113
+ elements: Element[],
114
+ }