@lexmata/micropdf 0.4.0
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/LICENSE +191 -0
- package/README.md +985 -0
- package/binding.gyp +73 -0
- package/dist/annot.d.ts +458 -0
- package/dist/annot.d.ts.map +1 -0
- package/dist/annot.js +697 -0
- package/dist/annot.js.map +1 -0
- package/dist/archive.d.ts +128 -0
- package/dist/archive.d.ts.map +1 -0
- package/dist/archive.js +268 -0
- package/dist/archive.js.map +1 -0
- package/dist/buffer.d.ts +572 -0
- package/dist/buffer.d.ts.map +1 -0
- package/dist/buffer.js +971 -0
- package/dist/buffer.js.map +1 -0
- package/dist/colorspace.d.ts +287 -0
- package/dist/colorspace.d.ts.map +1 -0
- package/dist/colorspace.js +542 -0
- package/dist/colorspace.js.map +1 -0
- package/dist/context.d.ts +184 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +320 -0
- package/dist/context.js.map +1 -0
- package/dist/cookie.d.ts +164 -0
- package/dist/cookie.d.ts.map +1 -0
- package/dist/cookie.js +306 -0
- package/dist/cookie.js.map +1 -0
- package/dist/device.d.ts +169 -0
- package/dist/device.d.ts.map +1 -0
- package/dist/device.js +350 -0
- package/dist/device.js.map +1 -0
- package/dist/display-list.d.ts +202 -0
- package/dist/display-list.d.ts.map +1 -0
- package/dist/display-list.js +410 -0
- package/dist/display-list.js.map +1 -0
- package/dist/document.d.ts +637 -0
- package/dist/document.d.ts.map +1 -0
- package/dist/document.js +902 -0
- package/dist/document.js.map +1 -0
- package/dist/easy.d.ts +423 -0
- package/dist/easy.d.ts.map +1 -0
- package/dist/easy.js +644 -0
- package/dist/easy.js.map +1 -0
- package/dist/enhanced.d.ts +226 -0
- package/dist/enhanced.d.ts.map +1 -0
- package/dist/enhanced.js +368 -0
- package/dist/enhanced.js.map +1 -0
- package/dist/filter.d.ts +51 -0
- package/dist/filter.d.ts.map +1 -0
- package/dist/filter.js +381 -0
- package/dist/filter.js.map +1 -0
- package/dist/font.d.ts +222 -0
- package/dist/font.d.ts.map +1 -0
- package/dist/font.js +381 -0
- package/dist/font.js.map +1 -0
- package/dist/form.d.ts +214 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +497 -0
- package/dist/form.js.map +1 -0
- package/dist/geometry.d.ts +469 -0
- package/dist/geometry.d.ts.map +1 -0
- package/dist/geometry.js +780 -0
- package/dist/geometry.js.map +1 -0
- package/dist/image.d.ts +172 -0
- package/dist/image.d.ts.map +1 -0
- package/dist/image.js +348 -0
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +171 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +339 -0
- package/dist/index.js.map +1 -0
- package/dist/link.d.ts +168 -0
- package/dist/link.d.ts.map +1 -0
- package/dist/link.js +343 -0
- package/dist/link.js.map +1 -0
- package/dist/micropdf.d.ts +40 -0
- package/dist/micropdf.d.ts.map +1 -0
- package/dist/micropdf.js +45 -0
- package/dist/micropdf.js.map +1 -0
- package/dist/nanopdf.d.ts +40 -0
- package/dist/nanopdf.d.ts.map +1 -0
- package/dist/nanopdf.js +45 -0
- package/dist/nanopdf.js.map +1 -0
- package/dist/native.d.ts +242 -0
- package/dist/native.d.ts.map +1 -0
- package/dist/native.js +509 -0
- package/dist/native.js.map +1 -0
- package/dist/output.d.ts +166 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +365 -0
- package/dist/output.js.map +1 -0
- package/dist/path.d.ts +420 -0
- package/dist/path.d.ts.map +1 -0
- package/dist/path.js +687 -0
- package/dist/path.js.map +1 -0
- package/dist/pdf/object.d.ts +489 -0
- package/dist/pdf/object.d.ts.map +1 -0
- package/dist/pdf/object.js +1045 -0
- package/dist/pdf/object.js.map +1 -0
- package/dist/pixmap.d.ts +315 -0
- package/dist/pixmap.d.ts.map +1 -0
- package/dist/pixmap.js +590 -0
- package/dist/pixmap.js.map +1 -0
- package/dist/profiler.d.ts +159 -0
- package/dist/profiler.d.ts.map +1 -0
- package/dist/profiler.js +380 -0
- package/dist/profiler.js.map +1 -0
- package/dist/render-options.d.ts +227 -0
- package/dist/render-options.d.ts.map +1 -0
- package/dist/render-options.js +130 -0
- package/dist/render-options.js.map +1 -0
- package/dist/resource-tracking.d.ts +332 -0
- package/dist/resource-tracking.d.ts.map +1 -0
- package/dist/resource-tracking.js +653 -0
- package/dist/resource-tracking.js.map +1 -0
- package/dist/simple.d.ts +276 -0
- package/dist/simple.d.ts.map +1 -0
- package/dist/simple.js +343 -0
- package/dist/simple.js.map +1 -0
- package/dist/stext.d.ts +290 -0
- package/dist/stext.d.ts.map +1 -0
- package/dist/stext.js +312 -0
- package/dist/stext.js.map +1 -0
- package/dist/stream.d.ts +174 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/stream.js +476 -0
- package/dist/stream.js.map +1 -0
- package/dist/text.d.ts +337 -0
- package/dist/text.d.ts.map +1 -0
- package/dist/text.js +454 -0
- package/dist/text.js.map +1 -0
- package/dist/typed-arrays.d.ts +127 -0
- package/dist/typed-arrays.d.ts.map +1 -0
- package/dist/typed-arrays.js +410 -0
- package/dist/typed-arrays.js.map +1 -0
- package/dist/types.d.ts +358 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +216 -0
- package/dist/types.js.map +1 -0
- package/native/annot.cc +557 -0
- package/native/buffer.cc +204 -0
- package/native/colorspace.cc +166 -0
- package/native/context.cc +84 -0
- package/native/cookie.cc +179 -0
- package/native/device.cc +179 -0
- package/native/display_list.cc +179 -0
- package/native/document.cc +268 -0
- package/native/enhanced.cc +70 -0
- package/native/font.cc +282 -0
- package/native/form.cc +523 -0
- package/native/geometry.cc +255 -0
- package/native/image.cc +216 -0
- package/native/include/micropdf/enhanced.h +38 -0
- package/native/include/micropdf/types.h +36 -0
- package/native/include/micropdf.h +106 -0
- package/native/include/mupdf-ffi.h +39 -0
- package/native/include/mupdf.h +11 -0
- package/native/include/mupdf_minimal.h +381 -0
- package/native/lib/linux-x64/libmicropdf.a +0 -0
- package/native/link.cc +234 -0
- package/native/micropdf.cc +71 -0
- package/native/output.cc +229 -0
- package/native/page.cc +572 -0
- package/native/path.cc +259 -0
- package/native/pixmap.cc +240 -0
- package/native/stext.cc +610 -0
- package/native/stream.cc +239 -0
- package/package.json +120 -0
- package/scripts/build-from-rust.js +97 -0
- package/scripts/install.js +184 -0
package/dist/device.js
ADDED
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Device - PDF rendering device abstraction
|
|
3
|
+
*
|
|
4
|
+
* This module provides 100% API compatibility with MuPDF's device operations.
|
|
5
|
+
* Devices receive drawing commands and render them to various outputs.
|
|
6
|
+
*/
|
|
7
|
+
import { Rect, Matrix } from './geometry.js';
|
|
8
|
+
/**
|
|
9
|
+
* Device types
|
|
10
|
+
*/
|
|
11
|
+
export var DeviceType;
|
|
12
|
+
(function (DeviceType) {
|
|
13
|
+
DeviceType[DeviceType["Unknown"] = 0] = "Unknown";
|
|
14
|
+
DeviceType[DeviceType["Draw"] = 1] = "Draw";
|
|
15
|
+
DeviceType[DeviceType["BBox"] = 2] = "BBox";
|
|
16
|
+
DeviceType[DeviceType["Trace"] = 3] = "Trace";
|
|
17
|
+
DeviceType[DeviceType["List"] = 4] = "List";
|
|
18
|
+
DeviceType[DeviceType["Custom"] = 5] = "Custom";
|
|
19
|
+
})(DeviceType || (DeviceType = {}));
|
|
20
|
+
/**
|
|
21
|
+
* Device hints for optimization
|
|
22
|
+
*/
|
|
23
|
+
export var DeviceHint;
|
|
24
|
+
(function (DeviceHint) {
|
|
25
|
+
DeviceHint[DeviceHint["NoCache"] = 1] = "NoCache";
|
|
26
|
+
DeviceHint[DeviceHint["NoPureColor"] = 2] = "NoPureColor";
|
|
27
|
+
})(DeviceHint || (DeviceHint = {}));
|
|
28
|
+
/**
|
|
29
|
+
* Blend modes for transparency
|
|
30
|
+
*/
|
|
31
|
+
export var BlendMode;
|
|
32
|
+
(function (BlendMode) {
|
|
33
|
+
BlendMode[BlendMode["Normal"] = 0] = "Normal";
|
|
34
|
+
BlendMode[BlendMode["Multiply"] = 1] = "Multiply";
|
|
35
|
+
BlendMode[BlendMode["Screen"] = 2] = "Screen";
|
|
36
|
+
BlendMode[BlendMode["Overlay"] = 3] = "Overlay";
|
|
37
|
+
BlendMode[BlendMode["Darken"] = 4] = "Darken";
|
|
38
|
+
BlendMode[BlendMode["Lighten"] = 5] = "Lighten";
|
|
39
|
+
BlendMode[BlendMode["ColorDodge"] = 6] = "ColorDodge";
|
|
40
|
+
BlendMode[BlendMode["ColorBurn"] = 7] = "ColorBurn";
|
|
41
|
+
BlendMode[BlendMode["HardLight"] = 8] = "HardLight";
|
|
42
|
+
BlendMode[BlendMode["SoftLight"] = 9] = "SoftLight";
|
|
43
|
+
BlendMode[BlendMode["Difference"] = 10] = "Difference";
|
|
44
|
+
BlendMode[BlendMode["Exclusion"] = 11] = "Exclusion";
|
|
45
|
+
})(BlendMode || (BlendMode = {}));
|
|
46
|
+
/**
|
|
47
|
+
* Abstract base class for rendering devices
|
|
48
|
+
*/
|
|
49
|
+
export class Device {
|
|
50
|
+
_refCount = 1;
|
|
51
|
+
_closed = false;
|
|
52
|
+
_type;
|
|
53
|
+
_hints = 0;
|
|
54
|
+
constructor(type) {
|
|
55
|
+
this._type = type;
|
|
56
|
+
}
|
|
57
|
+
// ============================================================================
|
|
58
|
+
// Reference Counting
|
|
59
|
+
// ============================================================================
|
|
60
|
+
keep() {
|
|
61
|
+
this._refCount++;
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
drop() {
|
|
65
|
+
if (this._refCount > 0) {
|
|
66
|
+
this._refCount--;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// ============================================================================
|
|
70
|
+
// Device Control
|
|
71
|
+
// ============================================================================
|
|
72
|
+
/**
|
|
73
|
+
* Close the device (finalize rendering)
|
|
74
|
+
*/
|
|
75
|
+
close() {
|
|
76
|
+
this._closed = true;
|
|
77
|
+
this.onClose();
|
|
78
|
+
}
|
|
79
|
+
onClose() {
|
|
80
|
+
// Override in subclasses
|
|
81
|
+
}
|
|
82
|
+
get isClosed() {
|
|
83
|
+
return this._closed;
|
|
84
|
+
}
|
|
85
|
+
get type() {
|
|
86
|
+
return this._type;
|
|
87
|
+
}
|
|
88
|
+
isValid() {
|
|
89
|
+
return !this._closed;
|
|
90
|
+
}
|
|
91
|
+
// ============================================================================
|
|
92
|
+
// Hints
|
|
93
|
+
// ============================================================================
|
|
94
|
+
enableHints(hints) {
|
|
95
|
+
this._hints |= hints;
|
|
96
|
+
}
|
|
97
|
+
disableHints(hints) {
|
|
98
|
+
this._hints &= ~hints;
|
|
99
|
+
}
|
|
100
|
+
hasHint(hint) {
|
|
101
|
+
return (this._hints & hint) !== 0;
|
|
102
|
+
}
|
|
103
|
+
// ============================================================================
|
|
104
|
+
// Tiling
|
|
105
|
+
// ============================================================================
|
|
106
|
+
beginTile(area, view, xStep, yStep, ctm) {
|
|
107
|
+
this.onBeginTile(Rect.from(area), Rect.from(view), xStep, yStep, Matrix.from(ctm));
|
|
108
|
+
}
|
|
109
|
+
onBeginTile(_area, _view, _xStep, _yStep, _ctm) {
|
|
110
|
+
// Override in subclasses
|
|
111
|
+
}
|
|
112
|
+
endTile() {
|
|
113
|
+
this.onEndTile();
|
|
114
|
+
}
|
|
115
|
+
onEndTile() {
|
|
116
|
+
// Override in subclasses
|
|
117
|
+
}
|
|
118
|
+
// ============================================================================
|
|
119
|
+
// Path Drawing
|
|
120
|
+
// ============================================================================
|
|
121
|
+
fillPath(path, evenOdd, ctm, colorspace, color, alpha) {
|
|
122
|
+
this.onFillPath(path, evenOdd, Matrix.from(ctm), colorspace, color, alpha);
|
|
123
|
+
}
|
|
124
|
+
strokePath(path, stroke, ctm, colorspace, color, alpha) {
|
|
125
|
+
this.onStrokePath(path, stroke, Matrix.from(ctm), colorspace, color, alpha);
|
|
126
|
+
}
|
|
127
|
+
clipPath(path, evenOdd, ctm) {
|
|
128
|
+
this.onClipPath(path, evenOdd, Matrix.from(ctm));
|
|
129
|
+
}
|
|
130
|
+
onClipPath(_path, _evenOdd, _ctm) {
|
|
131
|
+
// Override in subclasses
|
|
132
|
+
}
|
|
133
|
+
clipStrokePath(path, stroke, ctm) {
|
|
134
|
+
this.onClipStrokePath(path, stroke, Matrix.from(ctm));
|
|
135
|
+
}
|
|
136
|
+
onClipStrokePath(_path, _stroke, _ctm) {
|
|
137
|
+
// Override in subclasses
|
|
138
|
+
}
|
|
139
|
+
// ============================================================================
|
|
140
|
+
// Text Drawing
|
|
141
|
+
// ============================================================================
|
|
142
|
+
fillText(text, ctm, colorspace, color, alpha) {
|
|
143
|
+
this.onFillText(text, Matrix.from(ctm), colorspace, color, alpha);
|
|
144
|
+
}
|
|
145
|
+
onFillText(_text, _ctm, _colorspace, _color, _alpha) {
|
|
146
|
+
// Override in subclasses
|
|
147
|
+
}
|
|
148
|
+
strokeText(text, stroke, ctm, colorspace, color, alpha) {
|
|
149
|
+
this.onStrokeText(text, stroke, Matrix.from(ctm), colorspace, color, alpha);
|
|
150
|
+
}
|
|
151
|
+
onStrokeText(_text, _stroke, _ctm, _colorspace, _color, _alpha) {
|
|
152
|
+
// Override in subclasses
|
|
153
|
+
}
|
|
154
|
+
clipText(text, ctm) {
|
|
155
|
+
this.onClipText(text, Matrix.from(ctm));
|
|
156
|
+
}
|
|
157
|
+
onClipText(_text, _ctm) {
|
|
158
|
+
// Override in subclasses
|
|
159
|
+
}
|
|
160
|
+
clipStrokeText(text, stroke, ctm) {
|
|
161
|
+
this.onClipStrokeText(text, stroke, Matrix.from(ctm));
|
|
162
|
+
}
|
|
163
|
+
onClipStrokeText(_text, _stroke, _ctm) {
|
|
164
|
+
// Override in subclasses
|
|
165
|
+
}
|
|
166
|
+
ignoreText(text, ctm) {
|
|
167
|
+
this.onIgnoreText(text, Matrix.from(ctm));
|
|
168
|
+
}
|
|
169
|
+
onIgnoreText(_text, _ctm) {
|
|
170
|
+
// Override in subclasses
|
|
171
|
+
}
|
|
172
|
+
// ============================================================================
|
|
173
|
+
// Image Drawing
|
|
174
|
+
// ============================================================================
|
|
175
|
+
fillImage(image, ctm, alpha) {
|
|
176
|
+
this.onFillImage(image, Matrix.from(ctm), alpha);
|
|
177
|
+
}
|
|
178
|
+
onFillImage(_image, _ctm, _alpha) {
|
|
179
|
+
// Override in subclasses
|
|
180
|
+
}
|
|
181
|
+
fillImageMask(image, ctm, colorspace, color, alpha) {
|
|
182
|
+
this.onFillImageMask(image, Matrix.from(ctm), colorspace, color, alpha);
|
|
183
|
+
}
|
|
184
|
+
onFillImageMask(_image, _ctm, _colorspace, _color, _alpha) {
|
|
185
|
+
// Override in subclasses
|
|
186
|
+
}
|
|
187
|
+
clipImageMask(image, ctm) {
|
|
188
|
+
this.onClipImageMask(image, Matrix.from(ctm));
|
|
189
|
+
}
|
|
190
|
+
onClipImageMask(_image, _ctm) {
|
|
191
|
+
// Override in subclasses
|
|
192
|
+
}
|
|
193
|
+
// ============================================================================
|
|
194
|
+
// Clipping
|
|
195
|
+
// ============================================================================
|
|
196
|
+
popClip() {
|
|
197
|
+
this.onPopClip();
|
|
198
|
+
}
|
|
199
|
+
onPopClip() {
|
|
200
|
+
// Override in subclasses
|
|
201
|
+
}
|
|
202
|
+
// ============================================================================
|
|
203
|
+
// Masking
|
|
204
|
+
// ============================================================================
|
|
205
|
+
beginMask(area, luminosity, colorspace, color) {
|
|
206
|
+
this.onBeginMask(Rect.from(area), luminosity, colorspace, color);
|
|
207
|
+
}
|
|
208
|
+
onBeginMask(_area, _luminosity, _colorspace, _color) {
|
|
209
|
+
// Override in subclasses
|
|
210
|
+
}
|
|
211
|
+
endMask() {
|
|
212
|
+
this.onEndMask();
|
|
213
|
+
}
|
|
214
|
+
onEndMask() {
|
|
215
|
+
// Override in subclasses
|
|
216
|
+
}
|
|
217
|
+
// ============================================================================
|
|
218
|
+
// Grouping
|
|
219
|
+
// ============================================================================
|
|
220
|
+
beginGroup(area, colorspace, isolated, knockout, blendMode, alpha) {
|
|
221
|
+
this.onBeginGroup(Rect.from(area), colorspace, isolated, knockout, blendMode, alpha);
|
|
222
|
+
}
|
|
223
|
+
onBeginGroup(_area, _colorspace, _isolated, _knockout, _blendMode, _alpha) {
|
|
224
|
+
// Override in subclasses
|
|
225
|
+
}
|
|
226
|
+
endGroup() {
|
|
227
|
+
this.onEndGroup();
|
|
228
|
+
}
|
|
229
|
+
onEndGroup() {
|
|
230
|
+
// Override in subclasses
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Draw device - renders to a pixmap
|
|
235
|
+
*/
|
|
236
|
+
export class DrawDevice extends Device {
|
|
237
|
+
_pixmap;
|
|
238
|
+
constructor(pixmap) {
|
|
239
|
+
super(DeviceType.Draw);
|
|
240
|
+
this._pixmap = pixmap;
|
|
241
|
+
}
|
|
242
|
+
static create(pixmap) {
|
|
243
|
+
return new DrawDevice(pixmap);
|
|
244
|
+
}
|
|
245
|
+
get pixmap() {
|
|
246
|
+
return this._pixmap;
|
|
247
|
+
}
|
|
248
|
+
onFillPath(_path, _evenOdd, _ctm, _colorspace, _color, _alpha) {
|
|
249
|
+
// Actual rendering would happen here
|
|
250
|
+
}
|
|
251
|
+
onStrokePath(_path, _stroke, _ctm, _colorspace, _color, _alpha) {
|
|
252
|
+
// Actual rendering would happen here
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* BBox device - calculates bounding boxes
|
|
257
|
+
*/
|
|
258
|
+
export class BBoxDevice extends Device {
|
|
259
|
+
_bbox = Rect.EMPTY;
|
|
260
|
+
constructor() {
|
|
261
|
+
super(DeviceType.BBox);
|
|
262
|
+
}
|
|
263
|
+
static create() {
|
|
264
|
+
return new BBoxDevice();
|
|
265
|
+
}
|
|
266
|
+
get bbox() {
|
|
267
|
+
return this._bbox;
|
|
268
|
+
}
|
|
269
|
+
onFillPath(path, _evenOdd, ctm, _colorspace, _color, _alpha) {
|
|
270
|
+
const pathBounds = path.getBounds();
|
|
271
|
+
const transformedBounds = pathBounds.transform(ctm);
|
|
272
|
+
this._bbox = this._bbox.union(transformedBounds);
|
|
273
|
+
}
|
|
274
|
+
onStrokePath(path, _stroke, ctm, _colorspace, _color, _alpha) {
|
|
275
|
+
const pathBounds = path.getBounds();
|
|
276
|
+
const transformedBounds = pathBounds.transform(ctm);
|
|
277
|
+
this._bbox = this._bbox.union(transformedBounds);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Trace device - logs drawing operations
|
|
282
|
+
*/
|
|
283
|
+
export class TraceDevice extends Device {
|
|
284
|
+
_log = [];
|
|
285
|
+
constructor() {
|
|
286
|
+
super(DeviceType.Trace);
|
|
287
|
+
}
|
|
288
|
+
static create() {
|
|
289
|
+
return new TraceDevice();
|
|
290
|
+
}
|
|
291
|
+
get log() {
|
|
292
|
+
return [...this._log];
|
|
293
|
+
}
|
|
294
|
+
onFillPath(_path, evenOdd, _ctm, colorspace, color, alpha) {
|
|
295
|
+
this._log.push(`fillPath(evenOdd=${evenOdd}, colorspace=${colorspace.type}, color=[${color}], alpha=${alpha})`);
|
|
296
|
+
}
|
|
297
|
+
onStrokePath(_path, stroke, _ctm, colorspace, color, alpha) {
|
|
298
|
+
this._log.push(`strokePath(width=${stroke.lineWidth}, colorspace=${colorspace.type}, color=[${color}], alpha=${alpha})`);
|
|
299
|
+
}
|
|
300
|
+
onFillText(text, _ctm, colorspace, color, alpha) {
|
|
301
|
+
this._log.push(`fillText("${text}", colorspace=${colorspace.type}, color=[${color}], alpha=${alpha})`);
|
|
302
|
+
}
|
|
303
|
+
onFillImage(image, _ctm, alpha) {
|
|
304
|
+
this._log.push(`fillImage(${image.width}x${image.height}, alpha=${alpha})`);
|
|
305
|
+
}
|
|
306
|
+
onBeginGroup(area, _colorspace, isolated, knockout, blendMode, alpha) {
|
|
307
|
+
this._log.push(`beginGroup(area=${area}, isolated=${isolated}, knockout=${knockout}, blend=${blendMode}, alpha=${alpha})`);
|
|
308
|
+
}
|
|
309
|
+
onEndGroup() {
|
|
310
|
+
this._log.push('endGroup()');
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* List device - records display list
|
|
315
|
+
*/
|
|
316
|
+
export class ListDevice extends Device {
|
|
317
|
+
_commands = [];
|
|
318
|
+
constructor() {
|
|
319
|
+
super(DeviceType.List);
|
|
320
|
+
}
|
|
321
|
+
static create() {
|
|
322
|
+
return new ListDevice();
|
|
323
|
+
}
|
|
324
|
+
get commands() {
|
|
325
|
+
return [...this._commands];
|
|
326
|
+
}
|
|
327
|
+
onFillPath(path, evenOdd, ctm, colorspace, color, alpha) {
|
|
328
|
+
this._commands.push({
|
|
329
|
+
type: 'fillPath',
|
|
330
|
+
path: path.clone(),
|
|
331
|
+
evenOdd,
|
|
332
|
+
ctm,
|
|
333
|
+
colorspace,
|
|
334
|
+
color: [...color],
|
|
335
|
+
alpha
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
onStrokePath(path, stroke, ctm, colorspace, color, alpha) {
|
|
339
|
+
this._commands.push({
|
|
340
|
+
type: 'strokePath',
|
|
341
|
+
path: path.clone(),
|
|
342
|
+
stroke: stroke.clone(),
|
|
343
|
+
ctm,
|
|
344
|
+
colorspace,
|
|
345
|
+
color: [...color],
|
|
346
|
+
alpha
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
//# sourceMappingURL=device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DisplayList - Cached rendering commands
|
|
3
|
+
*
|
|
4
|
+
* This module provides 100% API compatibility with MuPDF's display list operations.
|
|
5
|
+
* Display lists cache drawing commands for efficient re-rendering.
|
|
6
|
+
*/
|
|
7
|
+
import { Colorspace } from './colorspace.js';
|
|
8
|
+
import { Device } from './device.js';
|
|
9
|
+
import { Rect, Matrix, type RectLike, type MatrixLike } from './geometry.js';
|
|
10
|
+
import { Image } from './image.js';
|
|
11
|
+
import { Path, StrokeState } from './path.js';
|
|
12
|
+
import { Text } from './text.js';
|
|
13
|
+
/**
|
|
14
|
+
* Display list command types
|
|
15
|
+
*/
|
|
16
|
+
declare enum CommandType {
|
|
17
|
+
FillPath = 0,
|
|
18
|
+
StrokePath = 1,
|
|
19
|
+
ClipPath = 2,
|
|
20
|
+
ClipStrokePath = 3,
|
|
21
|
+
FillText = 4,
|
|
22
|
+
StrokeText = 5,
|
|
23
|
+
ClipText = 6,
|
|
24
|
+
ClipStrokeText = 7,
|
|
25
|
+
IgnoreText = 8,
|
|
26
|
+
FillShade = 9,
|
|
27
|
+
FillImage = 10,
|
|
28
|
+
FillImageMask = 11,
|
|
29
|
+
ClipImageMask = 12,
|
|
30
|
+
PopClip = 13,
|
|
31
|
+
BeginMask = 14,
|
|
32
|
+
EndMask = 15,
|
|
33
|
+
BeginGroup = 16,
|
|
34
|
+
EndGroup = 17,
|
|
35
|
+
BeginTile = 18,
|
|
36
|
+
EndTile = 19
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Command data for display list operations
|
|
40
|
+
* Using a flexible interface since commands can have various properties
|
|
41
|
+
*/
|
|
42
|
+
interface CommandData {
|
|
43
|
+
path?: Path;
|
|
44
|
+
evenOdd?: boolean;
|
|
45
|
+
stroke?: StrokeState;
|
|
46
|
+
text?: Text;
|
|
47
|
+
image?: Image;
|
|
48
|
+
ctm?: Matrix;
|
|
49
|
+
colorspace?: Colorspace | null;
|
|
50
|
+
color?: number[];
|
|
51
|
+
alpha?: number;
|
|
52
|
+
area?: Rect;
|
|
53
|
+
luminosity?: boolean;
|
|
54
|
+
isolated?: boolean;
|
|
55
|
+
knockout?: boolean;
|
|
56
|
+
blendMode?: number;
|
|
57
|
+
view?: Rect;
|
|
58
|
+
scale?: number;
|
|
59
|
+
id?: number;
|
|
60
|
+
xStep?: number;
|
|
61
|
+
yStep?: number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* A single display list command
|
|
65
|
+
*/
|
|
66
|
+
interface DisplayCommand {
|
|
67
|
+
type: CommandType;
|
|
68
|
+
data: CommandData;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* A display list - a cached list of rendering commands
|
|
72
|
+
*/
|
|
73
|
+
export declare class DisplayList {
|
|
74
|
+
private _commands;
|
|
75
|
+
private _bounds;
|
|
76
|
+
private _refCount;
|
|
77
|
+
constructor(bounds?: RectLike);
|
|
78
|
+
/**
|
|
79
|
+
* Create a new display list
|
|
80
|
+
*/
|
|
81
|
+
static create(bounds?: RectLike): DisplayList;
|
|
82
|
+
keep(): this;
|
|
83
|
+
drop(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Clone this display list
|
|
86
|
+
*/
|
|
87
|
+
clone(): DisplayList;
|
|
88
|
+
/**
|
|
89
|
+
* Get the bounding box of all commands
|
|
90
|
+
*/
|
|
91
|
+
getBounds(ctm?: MatrixLike): Rect;
|
|
92
|
+
/**
|
|
93
|
+
* Update bounds to include a rect
|
|
94
|
+
*/
|
|
95
|
+
private updateBounds;
|
|
96
|
+
/**
|
|
97
|
+
* Add a command to the display list
|
|
98
|
+
*/
|
|
99
|
+
private addCommand;
|
|
100
|
+
/**
|
|
101
|
+
* Count number of commands
|
|
102
|
+
*/
|
|
103
|
+
countCommands(): number;
|
|
104
|
+
/**
|
|
105
|
+
* Check if display list is empty
|
|
106
|
+
*/
|
|
107
|
+
isEmpty(): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Clear all commands
|
|
110
|
+
*/
|
|
111
|
+
clear(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Check if display list is valid
|
|
114
|
+
*/
|
|
115
|
+
isValid(): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Record a fill path command
|
|
118
|
+
*/
|
|
119
|
+
recordFillPath(path: Path, evenOdd: boolean, ctm: MatrixLike, colorspace: Colorspace, color: number[], alpha: number): void;
|
|
120
|
+
/**
|
|
121
|
+
* Record a stroke path command
|
|
122
|
+
*/
|
|
123
|
+
recordStrokePath(path: Path, stroke: StrokeState, ctm: MatrixLike, colorspace: Colorspace, color: number[], alpha: number): void;
|
|
124
|
+
/**
|
|
125
|
+
* Record a clip path command
|
|
126
|
+
*/
|
|
127
|
+
recordClipPath(path: Path, evenOdd: boolean, ctm: MatrixLike): void;
|
|
128
|
+
/**
|
|
129
|
+
* Record a clip stroke path command
|
|
130
|
+
*/
|
|
131
|
+
recordClipStrokePath(path: Path, stroke: StrokeState, ctm: MatrixLike): void;
|
|
132
|
+
/**
|
|
133
|
+
* Record a fill text command
|
|
134
|
+
*/
|
|
135
|
+
recordFillText(text: Text, ctm: MatrixLike, colorspace: Colorspace, color: number[], alpha: number): void;
|
|
136
|
+
/**
|
|
137
|
+
* Record a stroke text command
|
|
138
|
+
*/
|
|
139
|
+
recordStrokeText(text: Text, stroke: StrokeState, ctm: MatrixLike, colorspace: Colorspace, color: number[], alpha: number): void;
|
|
140
|
+
/**
|
|
141
|
+
* Record a clip text command
|
|
142
|
+
*/
|
|
143
|
+
recordClipText(text: Text, ctm: MatrixLike): void;
|
|
144
|
+
/**
|
|
145
|
+
* Record a clip stroke text command
|
|
146
|
+
*/
|
|
147
|
+
recordClipStrokeText(text: Text, stroke: StrokeState, ctm: MatrixLike): void;
|
|
148
|
+
/**
|
|
149
|
+
* Record an ignore text command
|
|
150
|
+
*/
|
|
151
|
+
recordIgnoreText(text: Text, ctm: MatrixLike): void;
|
|
152
|
+
/**
|
|
153
|
+
* Record a fill image command
|
|
154
|
+
*/
|
|
155
|
+
recordFillImage(image: Image, ctm: MatrixLike, alpha: number): void;
|
|
156
|
+
/**
|
|
157
|
+
* Record a fill image mask command
|
|
158
|
+
*/
|
|
159
|
+
recordFillImageMask(image: Image, ctm: MatrixLike, colorspace: Colorspace, color: number[], _alpha: number): void;
|
|
160
|
+
/**
|
|
161
|
+
* Record a clip image mask command
|
|
162
|
+
*/
|
|
163
|
+
recordClipImageMask(image: Image, ctm: MatrixLike): void;
|
|
164
|
+
/**
|
|
165
|
+
* Record a pop clip command
|
|
166
|
+
*/
|
|
167
|
+
recordPopClip(): void;
|
|
168
|
+
/**
|
|
169
|
+
* Record a begin mask command
|
|
170
|
+
*/
|
|
171
|
+
recordBeginMask(area: RectLike, luminosity: boolean, colorspace: Colorspace | null, color: number[]): void;
|
|
172
|
+
/**
|
|
173
|
+
* Record an end mask command
|
|
174
|
+
*/
|
|
175
|
+
recordEndMask(): void;
|
|
176
|
+
/**
|
|
177
|
+
* Record a begin group command
|
|
178
|
+
*/
|
|
179
|
+
recordBeginGroup(area: RectLike, colorspace: Colorspace | null, isolated: boolean, knockout: boolean, blendMode: number, alpha: number): void;
|
|
180
|
+
/**
|
|
181
|
+
* Record an end group command
|
|
182
|
+
*/
|
|
183
|
+
recordEndGroup(): void;
|
|
184
|
+
/**
|
|
185
|
+
* Record a begin tile command
|
|
186
|
+
*/
|
|
187
|
+
recordBeginTile(area: RectLike, view: RectLike, xStep: number, yStep: number, ctm: MatrixLike): void;
|
|
188
|
+
/**
|
|
189
|
+
* Record an end tile command
|
|
190
|
+
*/
|
|
191
|
+
recordEndTile(): void;
|
|
192
|
+
/**
|
|
193
|
+
* Run (replay) the display list to a device
|
|
194
|
+
*/
|
|
195
|
+
run(device: Device, ctm?: MatrixLike): void;
|
|
196
|
+
/**
|
|
197
|
+
* Get all commands
|
|
198
|
+
*/
|
|
199
|
+
getCommands(): DisplayCommand[];
|
|
200
|
+
}
|
|
201
|
+
export {};
|
|
202
|
+
//# sourceMappingURL=display-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-list.d.ts","sourceRoot":"","sources":["../src/display-list.ts"],"names":[],"mappings":"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"}
|