-
Notifications
You must be signed in to change notification settings - Fork 0
/
types.ts
157 lines (136 loc) · 3.02 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
/**
* Holds all of the vector results from processing a PDF.
*/
export interface VectorResult {
/**
* The original filename of the PDF.
*/
fileName: string;
/**
* The data extracted from each page of the PDF.
*/
pages: VectorPage[];
}
/**
* Holds the vector data extracted from a single PDF page.
*/
export interface VectorPage {
/**
* All of the vector groups on this page.
*/
groups: VectorGroup[];
}
/**
* Holds a group of vector data collected from a PDF page.
*/
export interface VectorGroup {
/**
* The color of the fills in this group, if any.
*/
fillColor?: string;
/**
* The line width of lines in this group.
*/
lineWidth: number;
/**
* The PDF layer where this group was found, if any.
*/
pdfLayerName?: string;
/**
* All of the paths in this group.
*/
paths: VectorPath[];
/**
* All of the points in this group.
*/
points: VectorPoint[];
/**
* The color of the strokes in this group, if any.
*/
strokeColor?: string;
}
/**
* Holds a single point in a PDF.
*/
export interface VectorPoint {
/**
* The X coordinate of this point.
*/
x: number;
/**
* The Y coordinate of this point.
*/
y: number;
}
/**
* Holds a single path drawn in a PDF.
*/
export interface VectorPath {
/**
* Indicates whether this path forms a closed shape.
*
* If this is true, then the first and last points in the path should be
* identical.
*/
closed: boolean;
/**
* The starting point of this path.
*/
startingPoint: VectorPoint;
/**
* The steps of this path.
*/
steps: VectorPathStep[];
}
/**
* The base type for all vector path steps.
*/
export interface VectorPathStepBase {
/**
* The end point of this step.
*/
endPoint: VectorPoint;
}
/**
* Holds a single straight line step along a vector path in a PDF.
*/
export interface VectorPathStepSimple extends VectorPathStepBase {
/**
* Indicates that this step is not a bezier curve.
*/
isBezier: false;
}
/**
* Holds a single bezier curve step along a vector path in a PDF.
*/
export interface VectorPathStepBezier extends VectorPathStepBase {
/**
* The first control point of the Bezier curve to the end point.
*/
controlPoint1: VectorPoint;
/**
* The second control point of the Bezier curve to the end point.
*/
controlPoint2: VectorPoint;
/**
* Indicates that this step is a bezier curve.
*/
isBezier: true;
}
/**
* Holds a single step along a vector path in a PDF.
*/
export type VectorPathStep = VectorPathStepSimple | VectorPathStepBezier;
/**
* Holds the result of a status check.
*/
export interface VectorStatus {
/**
* A user-friendly progress message about the vector processing.
*/
progress: string;
/**
* Indicates whether the vector data has been processed and is ready to be retrieved.
*/
ready: boolean;
}