pdfjs-dist 2.0.487 → 2.1.266
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.
Potentially problematic release.
This version of pdfjs-dist might be problematic. Click here for more details.
- package/bower.json +1 -1
- package/build/pdf.js +15564 -9476
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +46644 -36309
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/external/url/url-lib.js +627 -0
- package/image_decoders/pdf.image_decoders.js +11430 -0
- package/image_decoders/pdf.image_decoders.js.map +1 -0
- package/image_decoders/pdf.image_decoders.min.js +1 -0
- package/lib/core/annotation.js +406 -131
- package/lib/core/arithmetic_decoder.js +275 -245
- package/lib/core/bidi.js +65 -6
- package/lib/core/ccitt.js +173 -18
- package/lib/core/ccitt_stream.js +15 -6
- package/lib/core/cff_parser.js +376 -53
- package/lib/core/charsets.js +5 -4
- package/lib/core/chunked_stream.js +387 -149
- package/lib/core/cmap.js +310 -75
- package/lib/core/colorspace.js +874 -594
- package/lib/core/crypto.js +290 -45
- package/lib/core/document.js +545 -260
- package/lib/core/encodings.js +19 -10
- package/lib/core/evaluator.js +725 -147
- package/lib/core/font_renderer.js +360 -91
- package/lib/core/fonts.js +791 -186
- package/lib/core/function.js +284 -71
- package/lib/core/glyphlist.js +3 -2
- package/lib/core/image.js +168 -61
- package/lib/core/jbig2.js +479 -66
- package/lib/core/jbig2_stream.js +19 -8
- package/lib/core/jpeg_stream.js +38 -13
- package/lib/core/jpg.js +252 -29
- package/lib/core/jpx.js +396 -6
- package/lib/core/jpx_stream.js +18 -6
- package/lib/core/metrics.js +4 -4
- package/lib/core/murmurhash3.js +24 -6
- package/lib/core/obj.js +1137 -475
- package/lib/core/operator_list.js +108 -6
- package/lib/core/parser.js +321 -68
- package/lib/core/pattern.js +145 -13
- package/lib/core/pdf_manager.js +321 -133
- package/lib/core/primitives.js +75 -22
- package/lib/core/ps_parser.js +134 -45
- package/lib/core/standard_fonts.js +10 -10
- package/lib/core/stream.js +313 -34
- package/lib/core/type1_parser.js +143 -13
- package/lib/core/unicode.js +31 -4
- package/lib/core/worker.js +210 -66
- package/lib/display/annotation_layer.js +361 -123
- package/lib/display/api.js +1454 -729
- package/lib/display/api_compatibility.js +11 -13
- package/lib/display/canvas.js +324 -29
- package/lib/display/content_disposition.js +83 -32
- package/lib/display/dom_utils.js +226 -41
- package/lib/display/fetch_stream.js +208 -84
- package/lib/display/font_loader.js +465 -236
- package/lib/display/metadata.js +38 -16
- package/lib/display/network.js +216 -51
- package/lib/display/network_utils.js +32 -19
- package/lib/display/node_stream.js +352 -169
- package/lib/display/pattern_helper.js +58 -7
- package/lib/display/svg.js +242 -29
- package/lib/display/text_layer.js +132 -18
- package/lib/display/transport_stream.js +171 -42
- package/lib/display/webgl.js +64 -18
- package/lib/display/worker_options.js +5 -4
- package/lib/display/xml_parser.js +166 -53
- package/lib/examples/node/domstubs.js +57 -4
- package/lib/pdf.js +21 -4
- package/lib/pdf.worker.js +5 -3
- package/lib/shared/compatibility.js +158 -564
- package/lib/shared/global_scope.js +2 -2
- package/lib/shared/is_node.js +4 -4
- package/lib/shared/message_handler.js +521 -0
- package/lib/shared/streams_polyfill.js +21 -17
- package/lib/shared/url_polyfill.js +56 -0
- package/lib/shared/util.js +295 -650
- package/lib/test/unit/annotation_spec.js +629 -345
- package/lib/test/unit/api_spec.js +555 -253
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +40 -11
- package/lib/test/unit/clitests_helper.js +9 -7
- package/lib/test/unit/cmap_spec.js +80 -26
- package/lib/test/unit/colorspace_spec.js +99 -52
- package/lib/test/unit/crypto_spec.js +17 -5
- package/lib/test/unit/custom_spec.js +41 -53
- package/lib/test/unit/display_svg_spec.js +33 -17
- package/lib/test/unit/document_spec.js +3 -3
- package/lib/test/unit/dom_utils_spec.js +9 -9
- package/lib/test/unit/encodings_spec.js +25 -45
- package/lib/test/unit/evaluator_spec.js +34 -9
- package/lib/test/unit/function_spec.js +17 -5
- package/lib/test/unit/jasmine-boot.js +31 -18
- package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
- package/lib/test/unit/metadata_spec.js +71 -11
- package/lib/test/unit/murmurhash3_spec.js +3 -3
- package/lib/test/unit/network_spec.js +20 -5
- package/lib/test/unit/network_utils_spec.js +41 -14
- package/lib/test/unit/node_stream_spec.js +51 -27
- package/lib/test/unit/parser_spec.js +35 -8
- package/lib/test/unit/pdf_find_controller_spec.js +230 -0
- package/lib/test/unit/pdf_find_utils_spec.js +63 -0
- package/lib/test/unit/pdf_history_spec.js +21 -9
- package/lib/test/unit/primitives_spec.js +24 -4
- package/lib/test/unit/stream_spec.js +12 -4
- package/lib/test/unit/test_utils.js +90 -27
- package/lib/test/unit/testreporter.js +21 -3
- package/lib/test/unit/type1_parser_spec.js +8 -6
- package/lib/test/unit/ui_utils_spec.js +452 -14
- package/lib/test/unit/unicode_spec.js +14 -11
- package/lib/test/unit/util_spec.js +131 -9
- package/lib/web/annotation_layer_builder.js +39 -22
- package/lib/web/app.js +1240 -582
- package/lib/web/app_options.js +71 -41
- package/lib/web/base_viewer.js +508 -179
- package/lib/web/chromecom.js +261 -117
- package/lib/web/debugger.js +166 -22
- package/lib/web/download_manager.js +31 -13
- package/lib/web/firefox_print_service.js +17 -9
- package/lib/web/firefoxcom.js +283 -79
- package/lib/web/genericcom.js +89 -30
- package/lib/web/genericl10n.js +142 -30
- package/lib/web/grab_to_pan.js +26 -4
- package/lib/web/interfaces.js +170 -47
- package/lib/web/overlay_manager.js +235 -85
- package/lib/web/password_prompt.js +21 -13
- package/lib/web/pdf_attachment_viewer.js +38 -18
- package/lib/web/pdf_cursor_tools.js +39 -16
- package/lib/web/pdf_document_properties.js +80 -30
- package/lib/web/pdf_find_bar.js +84 -40
- package/lib/web/pdf_find_controller.js +495 -184
- package/lib/web/pdf_find_utils.js +111 -0
- package/lib/web/pdf_history.js +190 -53
- package/lib/web/pdf_link_service.js +137 -76
- package/lib/web/pdf_outline_viewer.js +73 -22
- package/lib/web/pdf_page_view.js +196 -63
- package/lib/web/pdf_presentation_mode.js +99 -34
- package/lib/web/pdf_print_service.js +57 -11
- package/lib/web/pdf_rendering_queue.js +27 -5
- package/lib/web/pdf_sidebar.js +120 -67
- package/lib/web/pdf_sidebar_resizer.js +42 -16
- package/lib/web/pdf_single_page_viewer.js +74 -66
- package/lib/web/pdf_thumbnail_view.js +103 -32
- package/lib/web/pdf_thumbnail_viewer.js +64 -24
- package/lib/web/pdf_viewer.component.js +112 -32
- package/lib/web/pdf_viewer.js +91 -52
- package/lib/web/preferences.js +275 -80
- package/lib/web/secondary_toolbar.js +165 -40
- package/lib/web/text_layer_builder.js +162 -65
- package/lib/web/toolbar.js +78 -43
- package/lib/web/ui_utils.js +462 -136
- package/lib/web/view_history.js +215 -67
- package/lib/web/viewer_compatibility.js +4 -13
- package/package.json +5 -4
- package/web/pdf_viewer.css +58 -1
- package/web/pdf_viewer.js +6346 -3919
- package/web/pdf_viewer.js.map +1 -1
- package/lib/test/unit/fonts_spec.js +0 -81
- package/lib/web/dom_events.js +0 -137
package/lib/core/primitives.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* @licstart The following is the entire license notice for the
|
3
3
|
* Javascript code in this page
|
4
4
|
*
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2018 Mozilla Foundation
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -19,43 +19,66 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
+
exports.isEOF = isEOF;
|
28
|
+
exports.isCmd = isCmd;
|
29
|
+
exports.isDict = isDict;
|
30
|
+
exports.isName = isName;
|
31
|
+
exports.isRef = isRef;
|
32
|
+
exports.isRefsEqual = isRefsEqual;
|
33
|
+
exports.isStream = isStream;
|
34
|
+
exports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0;
|
27
35
|
|
28
|
-
|
36
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
29
37
|
|
30
38
|
var EOF = {};
|
39
|
+
exports.EOF = EOF;
|
40
|
+
|
31
41
|
var Name = function NameClosure() {
|
32
42
|
function Name(name) {
|
33
43
|
this.name = name;
|
34
44
|
}
|
45
|
+
|
35
46
|
Name.prototype = {};
|
36
47
|
var nameCache = Object.create(null);
|
48
|
+
|
37
49
|
Name.get = function Name_get(name) {
|
38
50
|
var nameValue = nameCache[name];
|
39
51
|
return nameValue ? nameValue : nameCache[name] = new Name(name);
|
40
52
|
};
|
53
|
+
|
41
54
|
return Name;
|
42
55
|
}();
|
56
|
+
|
57
|
+
exports.Name = Name;
|
58
|
+
|
43
59
|
var Cmd = function CmdClosure() {
|
44
60
|
function Cmd(cmd) {
|
45
61
|
this.cmd = cmd;
|
46
62
|
}
|
63
|
+
|
47
64
|
Cmd.prototype = {};
|
48
65
|
var cmdCache = Object.create(null);
|
66
|
+
|
49
67
|
Cmd.get = function Cmd_get(cmd) {
|
50
68
|
var cmdValue = cmdCache[cmd];
|
51
69
|
return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);
|
52
70
|
};
|
71
|
+
|
53
72
|
return Cmd;
|
54
73
|
}();
|
74
|
+
|
75
|
+
exports.Cmd = Cmd;
|
76
|
+
|
55
77
|
var Dict = function DictClosure() {
|
56
78
|
var nonSerializable = function nonSerializableClosure() {
|
57
79
|
return nonSerializable;
|
58
80
|
};
|
81
|
+
|
59
82
|
function Dict(xref) {
|
60
83
|
this._map = Object.create(null);
|
61
84
|
this.xref = xref;
|
@@ -63,6 +86,7 @@ var Dict = function DictClosure() {
|
|
63
86
|
this.suppressEncryption = false;
|
64
87
|
this.__nonSerializable__ = nonSerializable;
|
65
88
|
}
|
89
|
+
|
66
90
|
Dict.prototype = {
|
67
91
|
assignXref: function Dict_assignXref(newXref) {
|
68
92
|
this.xref = newXref;
|
@@ -71,12 +95,15 @@ var Dict = function DictClosure() {
|
|
71
95
|
var value;
|
72
96
|
var xref = this.xref,
|
73
97
|
suppressEncryption = this.suppressEncryption;
|
98
|
+
|
74
99
|
if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {
|
75
100
|
return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
|
76
101
|
}
|
102
|
+
|
77
103
|
if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {
|
78
104
|
return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
|
79
105
|
}
|
106
|
+
|
80
107
|
value = this._map[key3] || null;
|
81
108
|
return xref ? xref.fetchIfRef(value, suppressEncryption) : value;
|
82
109
|
},
|
@@ -84,38 +111,50 @@ var Dict = function DictClosure() {
|
|
84
111
|
var value;
|
85
112
|
var xref = this.xref,
|
86
113
|
suppressEncryption = this.suppressEncryption;
|
114
|
+
|
87
115
|
if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {
|
88
116
|
if (xref) {
|
89
117
|
return xref.fetchIfRefAsync(value, suppressEncryption);
|
90
118
|
}
|
119
|
+
|
91
120
|
return Promise.resolve(value);
|
92
121
|
}
|
122
|
+
|
93
123
|
if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {
|
94
124
|
if (xref) {
|
95
125
|
return xref.fetchIfRefAsync(value, suppressEncryption);
|
96
126
|
}
|
127
|
+
|
97
128
|
return Promise.resolve(value);
|
98
129
|
}
|
130
|
+
|
99
131
|
value = this._map[key3] || null;
|
132
|
+
|
100
133
|
if (xref) {
|
101
134
|
return xref.fetchIfRefAsync(value, suppressEncryption);
|
102
135
|
}
|
136
|
+
|
103
137
|
return Promise.resolve(value);
|
104
138
|
},
|
105
139
|
getArray: function Dict_getArray(key1, key2, key3) {
|
106
140
|
var value = this.get(key1, key2, key3);
|
107
141
|
var xref = this.xref,
|
108
142
|
suppressEncryption = this.suppressEncryption;
|
143
|
+
|
109
144
|
if (!Array.isArray(value) || !xref) {
|
110
145
|
return value;
|
111
146
|
}
|
147
|
+
|
112
148
|
value = value.slice();
|
149
|
+
|
113
150
|
for (var i = 0, ii = value.length; i < ii; i++) {
|
114
151
|
if (!isRef(value[i])) {
|
115
152
|
continue;
|
116
153
|
}
|
154
|
+
|
117
155
|
value[i] = xref.fetch(value[i], suppressEncryption);
|
118
156
|
}
|
157
|
+
|
119
158
|
return value;
|
120
159
|
},
|
121
160
|
getRaw: function Dict_getRaw(key) {
|
@@ -137,44 +176,59 @@ var Dict = function DictClosure() {
|
|
137
176
|
}
|
138
177
|
};
|
139
178
|
Dict.empty = new Dict(null);
|
179
|
+
|
140
180
|
Dict.merge = function (xref, dictArray) {
|
141
181
|
var mergedDict = new Dict(xref);
|
182
|
+
|
142
183
|
for (var i = 0, ii = dictArray.length; i < ii; i++) {
|
143
184
|
var dict = dictArray[i];
|
185
|
+
|
144
186
|
if (!isDict(dict)) {
|
145
187
|
continue;
|
146
188
|
}
|
189
|
+
|
147
190
|
for (var keyName in dict._map) {
|
148
191
|
if (mergedDict._map[keyName] !== undefined) {
|
149
192
|
continue;
|
150
193
|
}
|
194
|
+
|
151
195
|
mergedDict._map[keyName] = dict._map[keyName];
|
152
196
|
}
|
153
197
|
}
|
198
|
+
|
154
199
|
return mergedDict;
|
155
200
|
};
|
201
|
+
|
156
202
|
return Dict;
|
157
203
|
}();
|
204
|
+
|
205
|
+
exports.Dict = Dict;
|
206
|
+
|
158
207
|
var Ref = function RefClosure() {
|
159
208
|
function Ref(num, gen) {
|
160
209
|
this.num = num;
|
161
210
|
this.gen = gen;
|
162
211
|
}
|
212
|
+
|
163
213
|
Ref.prototype = {
|
164
214
|
toString: function Ref_toString() {
|
165
|
-
var str = this.num + 'R';
|
166
215
|
if (this.gen !== 0) {
|
167
|
-
|
216
|
+
return "".concat(this.num, "R").concat(this.gen);
|
168
217
|
}
|
169
|
-
|
218
|
+
|
219
|
+
return "".concat(this.num, "R");
|
170
220
|
}
|
171
221
|
};
|
172
222
|
return Ref;
|
173
223
|
}();
|
224
|
+
|
225
|
+
exports.Ref = Ref;
|
226
|
+
|
174
227
|
var RefSet = function RefSetClosure() {
|
175
228
|
function RefSet() {
|
176
229
|
this.dict = Object.create(null);
|
177
230
|
}
|
231
|
+
|
178
232
|
RefSet.prototype = {
|
179
233
|
has: function RefSet_has(ref) {
|
180
234
|
return ref.toString() in this.dict;
|
@@ -188,10 +242,14 @@ var RefSet = function RefSetClosure() {
|
|
188
242
|
};
|
189
243
|
return RefSet;
|
190
244
|
}();
|
245
|
+
|
246
|
+
exports.RefSet = RefSet;
|
247
|
+
|
191
248
|
var RefSetCache = function RefSetCacheClosure() {
|
192
249
|
function RefSetCache() {
|
193
250
|
this.dict = Object.create(null);
|
194
251
|
}
|
252
|
+
|
195
253
|
RefSetCache.prototype = {
|
196
254
|
get: function RefSetCache_get(ref) {
|
197
255
|
return this.dict[ref.toString()];
|
@@ -216,38 +274,33 @@ var RefSetCache = function RefSetCacheClosure() {
|
|
216
274
|
};
|
217
275
|
return RefSetCache;
|
218
276
|
}();
|
277
|
+
|
278
|
+
exports.RefSetCache = RefSetCache;
|
279
|
+
|
219
280
|
function isEOF(v) {
|
220
281
|
return v === EOF;
|
221
282
|
}
|
283
|
+
|
222
284
|
function isName(v, name) {
|
223
285
|
return v instanceof Name && (name === undefined || v.name === name);
|
224
286
|
}
|
287
|
+
|
225
288
|
function isCmd(v, cmd) {
|
226
289
|
return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);
|
227
290
|
}
|
291
|
+
|
228
292
|
function isDict(v, type) {
|
229
293
|
return v instanceof Dict && (type === undefined || isName(v.get('Type'), type));
|
230
294
|
}
|
295
|
+
|
231
296
|
function isRef(v) {
|
232
297
|
return v instanceof Ref;
|
233
298
|
}
|
299
|
+
|
234
300
|
function isRefsEqual(v1, v2) {
|
235
301
|
return v1.num === v2.num && v1.gen === v2.gen;
|
236
302
|
}
|
303
|
+
|
237
304
|
function isStream(v) {
|
238
|
-
return
|
239
|
-
}
|
240
|
-
exports.EOF = EOF;
|
241
|
-
exports.Cmd = Cmd;
|
242
|
-
exports.Dict = Dict;
|
243
|
-
exports.Name = Name;
|
244
|
-
exports.Ref = Ref;
|
245
|
-
exports.RefSet = RefSet;
|
246
|
-
exports.RefSetCache = RefSetCache;
|
247
|
-
exports.isEOF = isEOF;
|
248
|
-
exports.isCmd = isCmd;
|
249
|
-
exports.isDict = isDict;
|
250
|
-
exports.isName = isName;
|
251
|
-
exports.isRef = isRef;
|
252
|
-
exports.isRefsEqual = isRefsEqual;
|
253
|
-
exports.isStream = isStream;
|
305
|
+
return _typeof(v) === 'object' && v !== null && v.getBytes !== undefined;
|
306
|
+
}
|
package/lib/core/ps_parser.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* @licstart The following is the entire license notice for the
|
3
3
|
* Javascript code in this page
|
4
4
|
*
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2018 Mozilla Foundation
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -19,50 +19,72 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.PostScriptParser = exports.PostScriptLexer =
|
27
|
+
exports.PostScriptParser = exports.PostScriptLexer = void 0;
|
28
28
|
|
29
|
-
var _util = require(
|
29
|
+
var _util = require("../shared/util");
|
30
30
|
|
31
|
-
var _primitives = require(
|
31
|
+
var _primitives = require("./primitives");
|
32
32
|
|
33
|
-
|
33
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
34
|
+
|
35
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
36
|
+
|
37
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
38
|
+
|
39
|
+
var PostScriptParser =
|
40
|
+
/*#__PURE__*/
|
41
|
+
function () {
|
34
42
|
function PostScriptParser(lexer) {
|
43
|
+
_classCallCheck(this, PostScriptParser);
|
44
|
+
|
35
45
|
this.lexer = lexer;
|
36
46
|
this.operators = [];
|
37
47
|
this.token = null;
|
38
48
|
this.prev = null;
|
39
49
|
}
|
40
|
-
|
41
|
-
|
50
|
+
|
51
|
+
_createClass(PostScriptParser, [{
|
52
|
+
key: "nextToken",
|
53
|
+
value: function nextToken() {
|
42
54
|
this.prev = this.token;
|
43
55
|
this.token = this.lexer.getToken();
|
44
|
-
}
|
45
|
-
|
56
|
+
}
|
57
|
+
}, {
|
58
|
+
key: "accept",
|
59
|
+
value: function accept(type) {
|
46
60
|
if (this.token.type === type) {
|
47
61
|
this.nextToken();
|
48
62
|
return true;
|
49
63
|
}
|
64
|
+
|
50
65
|
return false;
|
51
|
-
}
|
52
|
-
|
66
|
+
}
|
67
|
+
}, {
|
68
|
+
key: "expect",
|
69
|
+
value: function expect(type) {
|
53
70
|
if (this.accept(type)) {
|
54
71
|
return true;
|
55
72
|
}
|
56
|
-
|
57
|
-
|
58
|
-
|
73
|
+
|
74
|
+
throw new _util.FormatError("Unexpected symbol: found ".concat(this.token.type, " expected ").concat(type, "."));
|
75
|
+
}
|
76
|
+
}, {
|
77
|
+
key: "parse",
|
78
|
+
value: function parse() {
|
59
79
|
this.nextToken();
|
60
80
|
this.expect(PostScriptTokenTypes.LBRACE);
|
61
81
|
this.parseBlock();
|
62
82
|
this.expect(PostScriptTokenTypes.RBRACE);
|
63
83
|
return this.operators;
|
64
|
-
}
|
65
|
-
|
84
|
+
}
|
85
|
+
}, {
|
86
|
+
key: "parseBlock",
|
87
|
+
value: function parseBlock() {
|
66
88
|
while (true) {
|
67
89
|
if (this.accept(PostScriptTokenTypes.NUMBER)) {
|
68
90
|
this.operators.push(this.prev.value);
|
@@ -74,12 +96,15 @@ var PostScriptParser = function PostScriptParserClosure() {
|
|
74
96
|
return;
|
75
97
|
}
|
76
98
|
}
|
77
|
-
}
|
78
|
-
|
99
|
+
}
|
100
|
+
}, {
|
101
|
+
key: "parseCondition",
|
102
|
+
value: function parseCondition() {
|
79
103
|
var conditionLocation = this.operators.length;
|
80
104
|
this.operators.push(null, null);
|
81
105
|
this.parseBlock();
|
82
106
|
this.expect(PostScriptTokenTypes.RBRACE);
|
107
|
+
|
83
108
|
if (this.accept(PostScriptTokenTypes.IF)) {
|
84
109
|
this.operators[conditionLocation] = this.operators.length;
|
85
110
|
this.operators[conditionLocation + 1] = 'jz';
|
@@ -98,9 +123,12 @@ var PostScriptParser = function PostScriptParserClosure() {
|
|
98
123
|
throw new _util.FormatError('PS Function: error parsing conditional.');
|
99
124
|
}
|
100
125
|
}
|
101
|
-
};
|
126
|
+
}]);
|
127
|
+
|
102
128
|
return PostScriptParser;
|
103
129
|
}();
|
130
|
+
|
131
|
+
exports.PostScriptParser = PostScriptParser;
|
104
132
|
var PostScriptTokenTypes = {
|
105
133
|
LBRACE: 0,
|
106
134
|
RBRACE: 1,
|
@@ -109,42 +137,86 @@ var PostScriptTokenTypes = {
|
|
109
137
|
IF: 4,
|
110
138
|
IFELSE: 5
|
111
139
|
};
|
140
|
+
|
112
141
|
var PostScriptToken = function PostScriptTokenClosure() {
|
113
|
-
function PostScriptToken(type, value) {
|
114
|
-
this.type = type;
|
115
|
-
this.value = value;
|
116
|
-
}
|
117
142
|
var opCache = Object.create(null);
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
143
|
+
|
144
|
+
var PostScriptToken =
|
145
|
+
/*#__PURE__*/
|
146
|
+
function () {
|
147
|
+
function PostScriptToken(type, value) {
|
148
|
+
_classCallCheck(this, PostScriptToken);
|
149
|
+
|
150
|
+
this.type = type;
|
151
|
+
this.value = value;
|
122
152
|
}
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
153
|
+
|
154
|
+
_createClass(PostScriptToken, null, [{
|
155
|
+
key: "getOperator",
|
156
|
+
value: function getOperator(op) {
|
157
|
+
var opValue = opCache[op];
|
158
|
+
|
159
|
+
if (opValue) {
|
160
|
+
return opValue;
|
161
|
+
}
|
162
|
+
|
163
|
+
return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);
|
164
|
+
}
|
165
|
+
}, {
|
166
|
+
key: "LBRACE",
|
167
|
+
get: function get() {
|
168
|
+
return (0, _util.shadow)(this, 'LBRACE', new PostScriptToken(PostScriptTokenTypes.LBRACE, '{'));
|
169
|
+
}
|
170
|
+
}, {
|
171
|
+
key: "RBRACE",
|
172
|
+
get: function get() {
|
173
|
+
return (0, _util.shadow)(this, 'RBRACE', new PostScriptToken(PostScriptTokenTypes.RBRACE, '}'));
|
174
|
+
}
|
175
|
+
}, {
|
176
|
+
key: "IF",
|
177
|
+
get: function get() {
|
178
|
+
return (0, _util.shadow)(this, 'IF', new PostScriptToken(PostScriptTokenTypes.IF, 'IF'));
|
179
|
+
}
|
180
|
+
}, {
|
181
|
+
key: "IFELSE",
|
182
|
+
get: function get() {
|
183
|
+
return (0, _util.shadow)(this, 'IFELSE', new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE'));
|
184
|
+
}
|
185
|
+
}]);
|
186
|
+
|
187
|
+
return PostScriptToken;
|
188
|
+
}();
|
189
|
+
|
129
190
|
return PostScriptToken;
|
130
191
|
}();
|
131
|
-
|
192
|
+
|
193
|
+
var PostScriptLexer =
|
194
|
+
/*#__PURE__*/
|
195
|
+
function () {
|
132
196
|
function PostScriptLexer(stream) {
|
197
|
+
_classCallCheck(this, PostScriptLexer);
|
198
|
+
|
133
199
|
this.stream = stream;
|
134
200
|
this.nextChar();
|
135
201
|
this.strBuf = [];
|
136
202
|
}
|
137
|
-
|
138
|
-
|
203
|
+
|
204
|
+
_createClass(PostScriptLexer, [{
|
205
|
+
key: "nextChar",
|
206
|
+
value: function nextChar() {
|
139
207
|
return this.currentChar = this.stream.getByte();
|
140
|
-
}
|
141
|
-
|
208
|
+
}
|
209
|
+
}, {
|
210
|
+
key: "getToken",
|
211
|
+
value: function getToken() {
|
142
212
|
var comment = false;
|
143
213
|
var ch = this.currentChar;
|
214
|
+
|
144
215
|
while (true) {
|
145
216
|
if (ch < 0) {
|
146
217
|
return _primitives.EOF;
|
147
218
|
}
|
219
|
+
|
148
220
|
if (comment) {
|
149
221
|
if (ch === 0x0A || ch === 0x0D) {
|
150
222
|
comment = false;
|
@@ -154,8 +226,10 @@ var PostScriptLexer = function PostScriptLexerClosure() {
|
|
154
226
|
} else if (!(0, _util.isSpace)(ch)) {
|
155
227
|
break;
|
156
228
|
}
|
229
|
+
|
157
230
|
ch = this.nextChar();
|
158
231
|
}
|
232
|
+
|
159
233
|
switch (ch | 0) {
|
160
234
|
case 0x30:
|
161
235
|
case 0x31:
|
@@ -171,34 +245,45 @@ var PostScriptLexer = function PostScriptLexerClosure() {
|
|
171
245
|
case 0x2D:
|
172
246
|
case 0x2E:
|
173
247
|
return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());
|
248
|
+
|
174
249
|
case 0x7B:
|
175
250
|
this.nextChar();
|
176
251
|
return PostScriptToken.LBRACE;
|
252
|
+
|
177
253
|
case 0x7D:
|
178
254
|
this.nextChar();
|
179
255
|
return PostScriptToken.RBRACE;
|
180
256
|
}
|
257
|
+
|
181
258
|
var strBuf = this.strBuf;
|
182
259
|
strBuf.length = 0;
|
183
260
|
strBuf[0] = String.fromCharCode(ch);
|
261
|
+
|
184
262
|
while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A)) {
|
185
263
|
strBuf.push(String.fromCharCode(ch));
|
186
264
|
}
|
265
|
+
|
187
266
|
var str = strBuf.join('');
|
267
|
+
|
188
268
|
switch (str.toLowerCase()) {
|
189
269
|
case 'if':
|
190
270
|
return PostScriptToken.IF;
|
271
|
+
|
191
272
|
case 'ifelse':
|
192
273
|
return PostScriptToken.IFELSE;
|
274
|
+
|
193
275
|
default:
|
194
276
|
return PostScriptToken.getOperator(str);
|
195
277
|
}
|
196
|
-
}
|
197
|
-
|
278
|
+
}
|
279
|
+
}, {
|
280
|
+
key: "getNumber",
|
281
|
+
value: function getNumber() {
|
198
282
|
var ch = this.currentChar;
|
199
283
|
var strBuf = this.strBuf;
|
200
284
|
strBuf.length = 0;
|
201
285
|
strBuf[0] = String.fromCharCode(ch);
|
286
|
+
|
202
287
|
while ((ch = this.nextChar()) >= 0) {
|
203
288
|
if (ch >= 0x30 && ch <= 0x39 || ch === 0x2D || ch === 0x2E) {
|
204
289
|
strBuf.push(String.fromCharCode(ch));
|
@@ -206,14 +291,18 @@ var PostScriptLexer = function PostScriptLexerClosure() {
|
|
206
291
|
break;
|
207
292
|
}
|
208
293
|
}
|
294
|
+
|
209
295
|
var value = parseFloat(strBuf.join(''));
|
296
|
+
|
210
297
|
if (isNaN(value)) {
|
211
|
-
throw new _util.FormatError(
|
298
|
+
throw new _util.FormatError("Invalid floating point number: ".concat(value));
|
212
299
|
}
|
300
|
+
|
213
301
|
return value;
|
214
302
|
}
|
215
|
-
};
|
303
|
+
}]);
|
304
|
+
|
216
305
|
return PostScriptLexer;
|
217
306
|
}();
|
218
|
-
|
219
|
-
exports.
|
307
|
+
|
308
|
+
exports.PostScriptLexer = PostScriptLexer;
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* @licstart The following is the entire license notice for the
|
3
3
|
* Javascript code in this page
|
4
4
|
*
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2018 Mozilla Foundation
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -19,14 +19,14 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap =
|
27
|
+
exports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = void 0;
|
28
28
|
|
29
|
-
var _util = require(
|
29
|
+
var _util = require("../shared/util");
|
30
30
|
|
31
31
|
var getStdFontMap = (0, _util.getLookupTableFactory)(function (t) {
|
32
32
|
t['ArialNarrow'] = 'Helvetica';
|
@@ -86,6 +86,7 @@ var getStdFontMap = (0, _util.getLookupTableFactory)(function (t) {
|
|
86
86
|
t['TimesNewRomanPSMT-BoldItalic'] = 'Times-BoldItalic';
|
87
87
|
t['TimesNewRomanPSMT-Italic'] = 'Times-Italic';
|
88
88
|
});
|
89
|
+
exports.getStdFontMap = getStdFontMap;
|
89
90
|
var getNonStdFontMap = (0, _util.getLookupTableFactory)(function (t) {
|
90
91
|
t['Calibri'] = 'Helvetica';
|
91
92
|
t['Calibri-Bold'] = 'Helvetica-Bold';
|
@@ -123,6 +124,7 @@ var getNonStdFontMap = (0, _util.getLookupTableFactory)(function (t) {
|
|
123
124
|
t['NuptialScript'] = 'Times-Italic';
|
124
125
|
t['Wingdings'] = 'ZapfDingbats';
|
125
126
|
});
|
127
|
+
exports.getNonStdFontMap = getNonStdFontMap;
|
126
128
|
var getSerifFonts = (0, _util.getLookupTableFactory)(function (t) {
|
127
129
|
t['Adobe Jenson'] = true;
|
128
130
|
t['Adobe Text'] = true;
|
@@ -258,11 +260,13 @@ var getSerifFonts = (0, _util.getLookupTableFactory)(function (t) {
|
|
258
260
|
t['Windsor'] = true;
|
259
261
|
t['XITS'] = true;
|
260
262
|
});
|
263
|
+
exports.getSerifFonts = getSerifFonts;
|
261
264
|
var getSymbolsFonts = (0, _util.getLookupTableFactory)(function (t) {
|
262
265
|
t['Dingbats'] = true;
|
263
266
|
t['Symbol'] = true;
|
264
267
|
t['ZapfDingbats'] = true;
|
265
268
|
});
|
269
|
+
exports.getSymbolsFonts = getSymbolsFonts;
|
266
270
|
var getGlyphMapForStandardFonts = (0, _util.getLookupTableFactory)(function (t) {
|
267
271
|
t[2] = 10;
|
268
272
|
t[3] = 32;
|
@@ -658,11 +662,13 @@ var getGlyphMapForStandardFonts = (0, _util.getLookupTableFactory)(function (t)
|
|
658
662
|
t[3393] = 1159;
|
659
663
|
t[3416] = 8377;
|
660
664
|
});
|
665
|
+
exports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;
|
661
666
|
var getSupplementalGlyphMapForArialBlack = (0, _util.getLookupTableFactory)(function (t) {
|
662
667
|
t[227] = 322;
|
663
668
|
t[264] = 261;
|
664
669
|
t[291] = 346;
|
665
670
|
});
|
671
|
+
exports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;
|
666
672
|
var getSupplementalGlyphMapForCalibri = (0, _util.getLookupTableFactory)(function (t) {
|
667
673
|
t[1] = 32;
|
668
674
|
t[4] = 65;
|
@@ -749,10 +755,4 @@ var getSupplementalGlyphMapForCalibri = (0, _util.getLookupTableFactory)(functio
|
|
749
755
|
t[1085] = 43;
|
750
756
|
t[1086] = 45;
|
751
757
|
});
|
752
|
-
exports.getStdFontMap = getStdFontMap;
|
753
|
-
exports.getNonStdFontMap = getNonStdFontMap;
|
754
|
-
exports.getSerifFonts = getSerifFonts;
|
755
|
-
exports.getSymbolsFonts = getSymbolsFonts;
|
756
|
-
exports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;
|
757
|
-
exports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;
|
758
758
|
exports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri;
|