pdfjs-dist 2.0.943 → 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 +15329 -11095
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +12497 -4184
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/image_decoders/pdf.image_decoders.js +3438 -1209
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +1 -1
- package/lib/core/annotation.js +335 -109
- package/lib/core/arithmetic_decoder.js +274 -244
- package/lib/core/bidi.js +64 -5
- package/lib/core/ccitt.js +172 -17
- package/lib/core/ccitt_stream.js +14 -5
- package/lib/core/cff_parser.js +304 -28
- package/lib/core/charsets.js +4 -3
- package/lib/core/chunked_stream.js +379 -149
- package/lib/core/cmap.js +210 -40
- package/lib/core/colorspace.js +332 -187
- package/lib/core/crypto.js +289 -44
- package/lib/core/document.js +508 -249
- package/lib/core/encodings.js +18 -9
- package/lib/core/evaluator.js +657 -119
- package/lib/core/font_renderer.js +217 -34
- package/lib/core/fonts.js +632 -41
- package/lib/core/function.js +252 -26
- package/lib/core/glyphlist.js +2 -1
- package/lib/core/image.js +124 -27
- package/lib/core/jbig2.js +425 -65
- package/lib/core/jbig2_stream.js +18 -7
- package/lib/core/jpeg_stream.js +24 -8
- package/lib/core/jpg.js +208 -16
- package/lib/core/jpx.js +395 -5
- package/lib/core/jpx_stream.js +17 -5
- package/lib/core/metrics.js +3 -3
- package/lib/core/murmurhash3.js +23 -5
- package/lib/core/obj.js +625 -132
- package/lib/core/operator_list.js +104 -3
- package/lib/core/parser.js +262 -25
- package/lib/core/pattern.js +144 -12
- package/lib/core/pdf_manager.js +104 -70
- package/lib/core/primitives.js +74 -21
- package/lib/core/ps_parser.js +133 -44
- package/lib/core/standard_fonts.js +9 -9
- package/lib/core/stream.js +283 -31
- package/lib/core/type1_parser.js +138 -6
- package/lib/core/unicode.js +28 -1
- package/lib/core/worker.js +192 -57
- package/lib/display/annotation_layer.js +303 -123
- package/lib/display/api.js +1073 -574
- package/lib/display/api_compatibility.js +4 -1
- package/lib/display/canvas.js +314 -18
- package/lib/display/content_disposition.js +70 -23
- package/lib/display/dom_utils.js +112 -59
- package/lib/display/fetch_stream.js +95 -50
- package/lib/display/font_loader.js +250 -132
- package/lib/display/metadata.js +37 -15
- package/lib/display/network.js +123 -34
- package/lib/display/network_utils.js +23 -10
- package/lib/display/node_stream.js +162 -65
- package/lib/display/pattern_helper.js +57 -6
- package/lib/display/svg.js +194 -18
- package/lib/display/text_layer.js +128 -14
- package/lib/display/transport_stream.js +83 -27
- package/lib/display/webgl.js +63 -17
- package/lib/display/worker_options.js +4 -3
- package/lib/display/xml_parser.js +162 -52
- package/lib/examples/node/domstubs.js +56 -3
- package/lib/pdf.js +15 -2
- package/lib/pdf.worker.js +4 -2
- package/lib/shared/compatibility.js +129 -26
- package/lib/shared/global_scope.js +1 -1
- package/lib/shared/is_node.js +3 -3
- package/lib/shared/message_handler.js +103 -45
- package/lib/shared/streams_polyfill.js +20 -16
- package/lib/shared/url_polyfill.js +8 -2
- package/lib/shared/util.js +246 -84
- package/lib/test/unit/annotation_spec.js +99 -73
- package/lib/test/unit/api_spec.js +347 -113
- package/lib/test/unit/bidi_spec.js +6 -6
- package/lib/test/unit/cff_parser_spec.js +17 -5
- package/lib/test/unit/clitests_helper.js +7 -8
- package/lib/test/unit/cmap_spec.js +79 -25
- package/lib/test/unit/colorspace_spec.js +65 -18
- package/lib/test/unit/crypto_spec.js +16 -4
- package/lib/test/unit/custom_spec.js +40 -52
- package/lib/test/unit/display_svg_spec.js +32 -16
- package/lib/test/unit/document_spec.js +2 -2
- package/lib/test/unit/dom_utils_spec.js +8 -8
- package/lib/test/unit/encodings_spec.js +24 -44
- package/lib/test/unit/evaluator_spec.js +15 -8
- package/lib/test/unit/function_spec.js +16 -4
- package/lib/test/unit/jasmine-boot.js +29 -16
- package/lib/test/unit/message_handler_spec.js +19 -6
- package/lib/test/unit/metadata_spec.js +64 -11
- package/lib/test/unit/murmurhash3_spec.js +2 -2
- package/lib/test/unit/network_spec.js +19 -4
- package/lib/test/unit/network_utils_spec.js +6 -4
- package/lib/test/unit/node_stream_spec.js +50 -26
- package/lib/test/unit/parser_spec.js +13 -29
- package/lib/test/unit/pdf_find_controller_spec.js +144 -32
- package/lib/test/unit/pdf_find_utils_spec.js +10 -9
- package/lib/test/unit/pdf_history_spec.js +20 -8
- package/lib/test/unit/primitives_spec.js +23 -3
- package/lib/test/unit/stream_spec.js +8 -3
- package/lib/test/unit/test_utils.js +89 -26
- package/lib/test/unit/testreporter.js +19 -1
- package/lib/test/unit/type1_parser_spec.js +7 -5
- package/lib/test/unit/ui_utils_spec.js +162 -38
- package/lib/test/unit/unicode_spec.js +13 -10
- package/lib/test/unit/util_spec.js +89 -9
- package/lib/web/annotation_layer_builder.js +38 -21
- package/lib/web/app.js +610 -245
- package/lib/web/app_options.js +54 -34
- package/lib/web/base_viewer.js +359 -162
- package/lib/web/chromecom.js +159 -80
- package/lib/web/debugger.js +161 -17
- package/lib/web/download_manager.js +29 -11
- package/lib/web/firefox_print_service.js +16 -8
- package/lib/web/firefoxcom.js +127 -91
- package/lib/web/genericcom.js +50 -31
- package/lib/web/genericl10n.js +46 -34
- package/lib/web/grab_to_pan.js +25 -3
- package/lib/web/interfaces.js +108 -61
- package/lib/web/overlay_manager.js +67 -45
- package/lib/web/password_prompt.js +20 -12
- package/lib/web/pdf_attachment_viewer.js +37 -17
- package/lib/web/pdf_cursor_tools.js +38 -15
- package/lib/web/pdf_document_properties.js +65 -24
- package/lib/web/pdf_find_bar.js +48 -20
- package/lib/web/pdf_find_controller.js +290 -89
- package/lib/web/pdf_find_utils.js +19 -3
- package/lib/web/pdf_history.js +186 -49
- package/lib/web/pdf_link_service.js +127 -52
- package/lib/web/pdf_outline_viewer.js +71 -21
- package/lib/web/pdf_page_view.js +188 -63
- package/lib/web/pdf_presentation_mode.js +98 -33
- package/lib/web/pdf_print_service.js +54 -10
- package/lib/web/pdf_rendering_queue.js +26 -4
- package/lib/web/pdf_sidebar.js +116 -62
- package/lib/web/pdf_sidebar_resizer.js +41 -15
- package/lib/web/pdf_single_page_viewer.js +65 -68
- package/lib/web/pdf_thumbnail_view.js +102 -31
- package/lib/web/pdf_thumbnail_viewer.js +62 -22
- package/lib/web/pdf_viewer.component.js +111 -31
- package/lib/web/pdf_viewer.js +80 -60
- package/lib/web/preferences.js +61 -39
- package/lib/web/secondary_toolbar.js +101 -82
- package/lib/web/text_layer_builder.js +124 -69
- package/lib/web/toolbar.js +67 -27
- package/lib/web/ui_utils.js +284 -128
- package/lib/web/view_history.js +75 -51
- package/lib/web/viewer_compatibility.js +2 -1
- package/package.json +1 -1
- package/web/pdf_viewer.css +1 -1
- package/web/pdf_viewer.js +2200 -973
- package/web/pdf_viewer.js.map +1 -1
- package/lib/web/dom_events.js +0 -140
package/lib/core/cmap.js
CHANGED
@@ -19,32 +19,44 @@
|
|
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.CMapFactory = exports.IdentityCMap = exports.CMap =
|
27
|
+
exports.CMapFactory = exports.IdentityCMap = exports.CMap = void 0;
|
28
28
|
|
29
|
-
var
|
29
|
+
var _util = require("../shared/util");
|
30
30
|
|
31
|
-
var
|
31
|
+
var _primitives = require("./primitives");
|
32
32
|
|
33
|
-
var
|
33
|
+
var _parser = require("./parser");
|
34
34
|
|
35
|
-
var
|
35
|
+
var _stream = require("./stream");
|
36
36
|
|
37
|
-
|
37
|
+
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); }
|
38
38
|
|
39
|
-
function _possibleConstructorReturn(self, call) { if (
|
39
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
40
40
|
|
41
|
-
function
|
41
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
42
|
+
|
43
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
44
|
+
|
45
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
46
|
+
|
47
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
42
48
|
|
43
49
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
44
50
|
|
51
|
+
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); } }
|
52
|
+
|
53
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
54
|
+
|
45
55
|
var BUILT_IN_CMAPS = ['Adobe-GB1-UCS2', 'Adobe-CNS1-UCS2', 'Adobe-Japan1-UCS2', 'Adobe-Korea1-UCS2', '78-EUC-H', '78-EUC-V', '78-H', '78-RKSJ-H', '78-RKSJ-V', '78-V', '78ms-RKSJ-H', '78ms-RKSJ-V', '83pv-RKSJ-H', '90ms-RKSJ-H', '90ms-RKSJ-V', '90msp-RKSJ-H', '90msp-RKSJ-V', '90pv-RKSJ-H', '90pv-RKSJ-V', 'Add-H', 'Add-RKSJ-H', 'Add-RKSJ-V', 'Add-V', 'Adobe-CNS1-0', 'Adobe-CNS1-1', 'Adobe-CNS1-2', 'Adobe-CNS1-3', 'Adobe-CNS1-4', 'Adobe-CNS1-5', 'Adobe-CNS1-6', 'Adobe-GB1-0', 'Adobe-GB1-1', 'Adobe-GB1-2', 'Adobe-GB1-3', 'Adobe-GB1-4', 'Adobe-GB1-5', 'Adobe-Japan1-0', 'Adobe-Japan1-1', 'Adobe-Japan1-2', 'Adobe-Japan1-3', 'Adobe-Japan1-4', 'Adobe-Japan1-5', 'Adobe-Japan1-6', 'Adobe-Korea1-0', 'Adobe-Korea1-1', 'Adobe-Korea1-2', 'B5-H', 'B5-V', 'B5pc-H', 'B5pc-V', 'CNS-EUC-H', 'CNS-EUC-V', 'CNS1-H', 'CNS1-V', 'CNS2-H', 'CNS2-V', 'ETHK-B5-H', 'ETHK-B5-V', 'ETen-B5-H', 'ETen-B5-V', 'ETenms-B5-H', 'ETenms-B5-V', 'EUC-H', 'EUC-V', 'Ext-H', 'Ext-RKSJ-H', 'Ext-RKSJ-V', 'Ext-V', 'GB-EUC-H', 'GB-EUC-V', 'GB-H', 'GB-V', 'GBK-EUC-H', 'GBK-EUC-V', 'GBK2K-H', 'GBK2K-V', 'GBKp-EUC-H', 'GBKp-EUC-V', 'GBT-EUC-H', 'GBT-EUC-V', 'GBT-H', 'GBT-V', 'GBTpc-EUC-H', 'GBTpc-EUC-V', 'GBpc-EUC-H', 'GBpc-EUC-V', 'H', 'HKdla-B5-H', 'HKdla-B5-V', 'HKdlb-B5-H', 'HKdlb-B5-V', 'HKgccs-B5-H', 'HKgccs-B5-V', 'HKm314-B5-H', 'HKm314-B5-V', 'HKm471-B5-H', 'HKm471-B5-V', 'HKscs-B5-H', 'HKscs-B5-V', 'Hankaku', 'Hiragana', 'KSC-EUC-H', 'KSC-EUC-V', 'KSC-H', 'KSC-Johab-H', 'KSC-Johab-V', 'KSC-V', 'KSCms-UHC-H', 'KSCms-UHC-HW-H', 'KSCms-UHC-HW-V', 'KSCms-UHC-V', 'KSCpc-EUC-H', 'KSCpc-EUC-V', 'Katakana', 'NWP-H', 'NWP-V', 'RKSJ-H', 'RKSJ-V', 'Roman', 'UniCNS-UCS2-H', 'UniCNS-UCS2-V', 'UniCNS-UTF16-H', 'UniCNS-UTF16-V', 'UniCNS-UTF32-H', 'UniCNS-UTF32-V', 'UniCNS-UTF8-H', 'UniCNS-UTF8-V', 'UniGB-UCS2-H', 'UniGB-UCS2-V', 'UniGB-UTF16-H', 'UniGB-UTF16-V', 'UniGB-UTF32-H', 'UniGB-UTF32-V', 'UniGB-UTF8-H', 'UniGB-UTF8-V', 'UniJIS-UCS2-H', 'UniJIS-UCS2-HW-H', 'UniJIS-UCS2-HW-V', 'UniJIS-UCS2-V', 'UniJIS-UTF16-H', 'UniJIS-UTF16-V', 'UniJIS-UTF32-H', 'UniJIS-UTF32-V', 'UniJIS-UTF8-H', 'UniJIS-UTF8-V', 'UniJIS2004-UTF16-H', 'UniJIS2004-UTF16-V', 'UniJIS2004-UTF32-H', 'UniJIS2004-UTF32-V', 'UniJIS2004-UTF8-H', 'UniJIS2004-UTF8-V', 'UniJISPro-UCS2-HW-V', 'UniJISPro-UCS2-V', 'UniJISPro-UTF8-V', 'UniJISX0213-UTF32-H', 'UniJISX0213-UTF32-V', 'UniJISX02132004-UTF32-H', 'UniJISX02132004-UTF32-V', 'UniKS-UCS2-H', 'UniKS-UCS2-V', 'UniKS-UTF16-H', 'UniKS-UTF16-V', 'UniKS-UTF32-H', 'UniKS-UTF32-V', 'UniKS-UTF8-H', 'UniKS-UTF8-V', 'V', 'WP-Symbol'];
|
46
56
|
|
47
|
-
var CMap =
|
57
|
+
var CMap =
|
58
|
+
/*#__PURE__*/
|
59
|
+
function () {
|
48
60
|
function CMap() {
|
49
61
|
var builtInCMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
50
62
|
|
@@ -60,57 +72,60 @@ var CMap = function () {
|
|
60
72
|
}
|
61
73
|
|
62
74
|
_createClass(CMap, [{
|
63
|
-
key:
|
75
|
+
key: "addCodespaceRange",
|
64
76
|
value: function addCodespaceRange(n, low, high) {
|
65
77
|
this.codespaceRanges[n - 1].push(low, high);
|
66
78
|
this.numCodespaceRanges++;
|
67
79
|
}
|
68
80
|
}, {
|
69
|
-
key:
|
81
|
+
key: "mapCidRange",
|
70
82
|
value: function mapCidRange(low, high, dstLow) {
|
71
83
|
while (low <= high) {
|
72
84
|
this._map[low++] = dstLow++;
|
73
85
|
}
|
74
86
|
}
|
75
87
|
}, {
|
76
|
-
key:
|
88
|
+
key: "mapBfRange",
|
77
89
|
value: function mapBfRange(low, high, dstLow) {
|
78
90
|
var lastByte = dstLow.length - 1;
|
91
|
+
|
79
92
|
while (low <= high) {
|
80
93
|
this._map[low++] = dstLow;
|
81
94
|
dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1);
|
82
95
|
}
|
83
96
|
}
|
84
97
|
}, {
|
85
|
-
key:
|
98
|
+
key: "mapBfRangeToArray",
|
86
99
|
value: function mapBfRangeToArray(low, high, array) {
|
87
100
|
var i = 0,
|
88
101
|
ii = array.length;
|
102
|
+
|
89
103
|
while (low <= high && i < ii) {
|
90
104
|
this._map[low] = array[i++];
|
91
105
|
++low;
|
92
106
|
}
|
93
107
|
}
|
94
108
|
}, {
|
95
|
-
key:
|
109
|
+
key: "mapOne",
|
96
110
|
value: function mapOne(src, dst) {
|
97
111
|
this._map[src] = dst;
|
98
112
|
}
|
99
113
|
}, {
|
100
|
-
key:
|
114
|
+
key: "lookup",
|
101
115
|
value: function lookup(code) {
|
102
116
|
return this._map[code];
|
103
117
|
}
|
104
118
|
}, {
|
105
|
-
key:
|
119
|
+
key: "contains",
|
106
120
|
value: function contains(code) {
|
107
121
|
return this._map[code] !== undefined;
|
108
122
|
}
|
109
123
|
}, {
|
110
|
-
key:
|
124
|
+
key: "forEach",
|
111
125
|
value: function forEach(callback) {
|
112
126
|
var map = this._map;
|
113
127
|
var length = map.length;
|
128
|
+
|
114
129
|
if (length <= 0x10000) {
|
115
130
|
for (var i = 0; i < length; i++) {
|
116
131
|
if (map[i] !== undefined) {
|
@@ -124,35 +139,41 @@ var CMap = function () {
|
|
124
139
|
}
|
125
140
|
}
|
126
141
|
}, {
|
127
|
-
key:
|
142
|
+
key: "charCodeOf",
|
128
143
|
value: function charCodeOf(value) {
|
129
144
|
var map = this._map;
|
145
|
+
|
130
146
|
if (map.length <= 0x10000) {
|
131
147
|
return map.indexOf(value);
|
132
148
|
}
|
149
|
+
|
133
150
|
for (var charCode in map) {
|
134
151
|
if (map[charCode] === value) {
|
135
152
|
return charCode | 0;
|
136
153
|
}
|
137
154
|
}
|
155
|
+
|
138
156
|
return -1;
|
139
157
|
}
|
140
158
|
}, {
|
141
|
-
key:
|
159
|
+
key: "getMap",
|
142
160
|
value: function getMap() {
|
143
161
|
return this._map;
|
144
162
|
}
|
145
163
|
}, {
|
146
|
-
key:
|
164
|
+
key: "readCharCode",
|
147
165
|
value: function readCharCode(str, offset, out) {
|
148
166
|
var c = 0;
|
149
167
|
var codespaceRanges = this.codespaceRanges;
|
168
|
+
|
150
169
|
for (var n = 0, nn = codespaceRanges.length; n < nn; n++) {
|
151
170
|
c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;
|
152
171
|
var codespaceRange = codespaceRanges[n];
|
172
|
+
|
153
173
|
for (var k = 0, kk = codespaceRange.length; k < kk;) {
|
154
174
|
var low = codespaceRange[k++];
|
155
175
|
var high = codespaceRange[k++];
|
176
|
+
|
156
177
|
if (c >= low && c <= high) {
|
157
178
|
out.charcode = c;
|
158
179
|
out.length = n + 1;
|
@@ -160,28 +181,32 @@ var CMap = function () {
|
|
160
181
|
}
|
161
182
|
}
|
162
183
|
}
|
184
|
+
|
163
185
|
out.charcode = 0;
|
164
186
|
out.length = 1;
|
165
187
|
}
|
166
188
|
}, {
|
167
|
-
key:
|
189
|
+
key: "length",
|
168
190
|
get: function get() {
|
169
191
|
return this._map.length;
|
170
192
|
}
|
171
193
|
}, {
|
172
|
-
key:
|
194
|
+
key: "isIdentityCMap",
|
173
195
|
get: function get() {
|
174
196
|
if (!(this.name === 'Identity-H' || this.name === 'Identity-V')) {
|
175
197
|
return false;
|
176
198
|
}
|
199
|
+
|
177
200
|
if (this._map.length !== 0x10000) {
|
178
201
|
return false;
|
179
202
|
}
|
203
|
+
|
180
204
|
for (var i = 0; i < 0x10000; i++) {
|
181
205
|
if (this._map[i] !== i) {
|
182
206
|
return false;
|
183
207
|
}
|
184
208
|
}
|
209
|
+
|
185
210
|
return true;
|
186
211
|
}
|
187
212
|
}]);
|
@@ -189,77 +214,86 @@ var CMap = function () {
|
|
189
214
|
return CMap;
|
190
215
|
}();
|
191
216
|
|
192
|
-
|
217
|
+
exports.CMap = CMap;
|
218
|
+
|
219
|
+
var IdentityCMap =
|
220
|
+
/*#__PURE__*/
|
221
|
+
function (_CMap) {
|
193
222
|
_inherits(IdentityCMap, _CMap);
|
194
223
|
|
195
224
|
function IdentityCMap(vertical, n) {
|
196
|
-
|
225
|
+
var _this;
|
197
226
|
|
198
|
-
|
227
|
+
_classCallCheck(this, IdentityCMap);
|
199
228
|
|
229
|
+
_this = _possibleConstructorReturn(this, _getPrototypeOf(IdentityCMap).call(this));
|
200
230
|
_this.vertical = vertical;
|
231
|
+
|
201
232
|
_this.addCodespaceRange(n, 0, 0xffff);
|
233
|
+
|
202
234
|
return _this;
|
203
235
|
}
|
204
236
|
|
205
237
|
_createClass(IdentityCMap, [{
|
206
|
-
key:
|
238
|
+
key: "mapCidRange",
|
207
239
|
value: function mapCidRange(low, high, dstLow) {
|
208
240
|
(0, _util.unreachable)('should not call mapCidRange');
|
209
241
|
}
|
210
242
|
}, {
|
211
|
-
key:
|
243
|
+
key: "mapBfRange",
|
212
244
|
value: function mapBfRange(low, high, dstLow) {
|
213
245
|
(0, _util.unreachable)('should not call mapBfRange');
|
214
246
|
}
|
215
247
|
}, {
|
216
|
-
key:
|
248
|
+
key: "mapBfRangeToArray",
|
217
249
|
value: function mapBfRangeToArray(low, high, array) {
|
218
250
|
(0, _util.unreachable)('should not call mapBfRangeToArray');
|
219
251
|
}
|
220
252
|
}, {
|
221
|
-
key:
|
253
|
+
key: "mapOne",
|
222
254
|
value: function mapOne(src, dst) {
|
223
255
|
(0, _util.unreachable)('should not call mapCidOne');
|
224
256
|
}
|
225
257
|
}, {
|
226
|
-
key:
|
258
|
+
key: "lookup",
|
227
259
|
value: function lookup(code) {
|
228
260
|
return Number.isInteger(code) && code <= 0xffff ? code : undefined;
|
229
261
|
}
|
230
262
|
}, {
|
231
|
-
key:
|
263
|
+
key: "contains",
|
232
264
|
value: function contains(code) {
|
233
265
|
return Number.isInteger(code) && code <= 0xffff;
|
234
266
|
}
|
235
267
|
}, {
|
236
|
-
key:
|
268
|
+
key: "forEach",
|
237
269
|
value: function forEach(callback) {
|
238
270
|
for (var i = 0; i <= 0xffff; i++) {
|
239
271
|
callback(i, i);
|
240
272
|
}
|
241
273
|
}
|
242
274
|
}, {
|
243
|
-
key:
|
275
|
+
key: "charCodeOf",
|
244
276
|
value: function charCodeOf(value) {
|
245
277
|
return Number.isInteger(value) && value <= 0xffff ? value : -1;
|
246
278
|
}
|
247
279
|
}, {
|
248
|
-
key:
|
280
|
+
key: "getMap",
|
249
281
|
value: function getMap() {
|
250
282
|
var map = new Array(0x10000);
|
283
|
+
|
251
284
|
for (var i = 0; i <= 0xffff; i++) {
|
252
285
|
map[i] = i;
|
253
286
|
}
|
287
|
+
|
254
288
|
return map;
|
255
289
|
}
|
256
290
|
}, {
|
257
|
-
key:
|
291
|
+
key: "length",
|
258
292
|
get: function get() {
|
259
293
|
return 0x10000;
|
260
294
|
}
|
261
295
|
}, {
|
262
|
-
key:
|
296
|
+
key: "isIdentityCMap",
|
263
297
|
get: function get() {
|
264
298
|
(0, _util.unreachable)('should not access .isIdentityCMap');
|
265
299
|
}
|
@@ -268,65 +302,84 @@ var IdentityCMap = function (_CMap) {
|
|
268
302
|
return IdentityCMap;
|
269
303
|
}(CMap);
|
270
304
|
|
305
|
+
exports.IdentityCMap = IdentityCMap;
|
306
|
+
|
271
307
|
var BinaryCMapReader = function BinaryCMapReaderClosure() {
|
272
308
|
function hexToInt(a, size) {
|
273
309
|
var n = 0;
|
310
|
+
|
274
311
|
for (var i = 0; i <= size; i++) {
|
275
312
|
n = n << 8 | a[i];
|
276
313
|
}
|
314
|
+
|
277
315
|
return n >>> 0;
|
278
316
|
}
|
317
|
+
|
279
318
|
function hexToStr(a, size) {
|
280
319
|
if (size === 1) {
|
281
320
|
return String.fromCharCode(a[0], a[1]);
|
282
321
|
}
|
322
|
+
|
283
323
|
if (size === 3) {
|
284
324
|
return String.fromCharCode(a[0], a[1], a[2], a[3]);
|
285
325
|
}
|
326
|
+
|
286
327
|
return String.fromCharCode.apply(null, a.subarray(0, size + 1));
|
287
328
|
}
|
329
|
+
|
288
330
|
function addHex(a, b, size) {
|
289
331
|
var c = 0;
|
332
|
+
|
290
333
|
for (var i = size; i >= 0; i--) {
|
291
334
|
c += a[i] + b[i];
|
292
335
|
a[i] = c & 255;
|
293
336
|
c >>= 8;
|
294
337
|
}
|
295
338
|
}
|
339
|
+
|
296
340
|
function incHex(a, size) {
|
297
341
|
var c = 1;
|
342
|
+
|
298
343
|
for (var i = size; i >= 0 && c > 0; i--) {
|
299
344
|
c += a[i];
|
300
345
|
a[i] = c & 255;
|
301
346
|
c >>= 8;
|
302
347
|
}
|
303
348
|
}
|
349
|
+
|
304
350
|
var MAX_NUM_SIZE = 16;
|
305
351
|
var MAX_ENCODED_NUM_SIZE = 19;
|
352
|
+
|
306
353
|
function BinaryCMapStream(data) {
|
307
354
|
this.buffer = data;
|
308
355
|
this.pos = 0;
|
309
356
|
this.end = data.length;
|
310
357
|
this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);
|
311
358
|
}
|
359
|
+
|
312
360
|
BinaryCMapStream.prototype = {
|
313
361
|
readByte: function readByte() {
|
314
362
|
if (this.pos >= this.end) {
|
315
363
|
return -1;
|
316
364
|
}
|
365
|
+
|
317
366
|
return this.buffer[this.pos++];
|
318
367
|
},
|
319
368
|
readNumber: function readNumber() {
|
320
369
|
var n = 0;
|
321
370
|
var last;
|
371
|
+
|
322
372
|
do {
|
323
373
|
var b = this.readByte();
|
374
|
+
|
324
375
|
if (b < 0) {
|
325
376
|
throw new _util.FormatError('unexpected EOF in bcmap');
|
326
377
|
}
|
378
|
+
|
327
379
|
last = !(b & 0x80);
|
328
380
|
n = n << 7 | b & 0x7F;
|
329
381
|
} while (!last);
|
382
|
+
|
330
383
|
return n;
|
331
384
|
},
|
332
385
|
readSigned: function readSigned() {
|
@@ -341,22 +394,28 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
|
|
341
394
|
var last;
|
342
395
|
var stack = this.tmpBuf,
|
343
396
|
sp = 0;
|
397
|
+
|
344
398
|
do {
|
345
399
|
var b = this.readByte();
|
400
|
+
|
346
401
|
if (b < 0) {
|
347
402
|
throw new _util.FormatError('unexpected EOF in bcmap');
|
348
403
|
}
|
404
|
+
|
349
405
|
last = !(b & 0x80);
|
350
406
|
stack[sp++] = b & 0x7F;
|
351
407
|
} while (!last);
|
408
|
+
|
352
409
|
var i = size,
|
353
410
|
buffer = 0,
|
354
411
|
bufferSize = 0;
|
412
|
+
|
355
413
|
while (i >= 0) {
|
356
414
|
while (bufferSize < 8 && stack.length > 0) {
|
357
415
|
buffer = stack[--sp] << bufferSize | buffer;
|
358
416
|
bufferSize += 7;
|
359
417
|
}
|
418
|
+
|
360
419
|
num[i] = buffer & 255;
|
361
420
|
i--;
|
362
421
|
buffer >>= 8;
|
@@ -367,6 +426,7 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
|
|
367
426
|
this.readHexNumber(num, size);
|
368
427
|
var sign = num[size] & 1 ? 255 : 0;
|
369
428
|
var c = 0;
|
429
|
+
|
370
430
|
for (var i = 0; i <= size; i++) {
|
371
431
|
c = (c & 1) << 8 | num[i];
|
372
432
|
num[i] = c >> 1 ^ sign;
|
@@ -375,12 +435,15 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
|
|
375
435
|
readString: function readString() {
|
376
436
|
var len = this.readNumber();
|
377
437
|
var s = '';
|
438
|
+
|
378
439
|
for (var i = 0; i < len; i++) {
|
379
440
|
s += String.fromCharCode(this.readNumber());
|
380
441
|
}
|
442
|
+
|
381
443
|
return s;
|
382
444
|
}
|
383
445
|
};
|
446
|
+
|
384
447
|
function processBinaryCMap(data, cMap, extend) {
|
385
448
|
return new Promise(function (resolve, reject) {
|
386
449
|
var stream = new BinaryCMapStream(data);
|
@@ -394,33 +457,42 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
|
|
394
457
|
var tmp = new Uint8Array(MAX_NUM_SIZE);
|
395
458
|
var code;
|
396
459
|
var b;
|
460
|
+
|
397
461
|
while ((b = stream.readByte()) >= 0) {
|
398
462
|
var type = b >> 5;
|
463
|
+
|
399
464
|
if (type === 7) {
|
400
465
|
switch (b & 0x1F) {
|
401
466
|
case 0:
|
402
467
|
stream.readString();
|
403
468
|
break;
|
469
|
+
|
404
470
|
case 1:
|
405
471
|
useCMap = stream.readString();
|
406
472
|
break;
|
407
473
|
}
|
474
|
+
|
408
475
|
continue;
|
409
476
|
}
|
477
|
+
|
410
478
|
var sequence = !!(b & 0x10);
|
411
479
|
var dataSize = b & 15;
|
480
|
+
|
412
481
|
if (dataSize + 1 > MAX_NUM_SIZE) {
|
413
482
|
throw new Error('processBinaryCMap: Invalid dataSize.');
|
414
483
|
}
|
484
|
+
|
415
485
|
var ucs2DataSize = 1;
|
416
486
|
var subitemsCount = stream.readNumber();
|
417
487
|
var i;
|
488
|
+
|
418
489
|
switch (type) {
|
419
490
|
case 0:
|
420
491
|
stream.readHex(start, dataSize);
|
421
492
|
stream.readHexNumber(end, dataSize);
|
422
493
|
addHex(end, start, dataSize);
|
423
494
|
cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));
|
495
|
+
|
424
496
|
for (i = 1; i < subitemsCount; i++) {
|
425
497
|
incHex(end, dataSize);
|
426
498
|
stream.readHexNumber(start, dataSize);
|
@@ -429,12 +501,15 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
|
|
429
501
|
addHex(end, start, dataSize);
|
430
502
|
cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));
|
431
503
|
}
|
504
|
+
|
432
505
|
break;
|
506
|
+
|
433
507
|
case 1:
|
434
508
|
stream.readHex(start, dataSize);
|
435
509
|
stream.readHexNumber(end, dataSize);
|
436
510
|
addHex(end, start, dataSize);
|
437
511
|
stream.readNumber();
|
512
|
+
|
438
513
|
for (i = 1; i < subitemsCount; i++) {
|
439
514
|
incHex(end, dataSize);
|
440
515
|
stream.readHexNumber(start, dataSize);
|
@@ -443,120 +518,157 @@ var BinaryCMapReader = function BinaryCMapReaderClosure() {
|
|
443
518
|
addHex(end, start, dataSize);
|
444
519
|
stream.readNumber();
|
445
520
|
}
|
521
|
+
|
446
522
|
break;
|
523
|
+
|
447
524
|
case 2:
|
448
525
|
stream.readHex(char, dataSize);
|
449
526
|
code = stream.readNumber();
|
450
527
|
cMap.mapOne(hexToInt(char, dataSize), code);
|
528
|
+
|
451
529
|
for (i = 1; i < subitemsCount; i++) {
|
452
530
|
incHex(char, dataSize);
|
531
|
+
|
453
532
|
if (!sequence) {
|
454
533
|
stream.readHexNumber(tmp, dataSize);
|
455
534
|
addHex(char, tmp, dataSize);
|
456
535
|
}
|
536
|
+
|
457
537
|
code = stream.readSigned() + (code + 1);
|
458
538
|
cMap.mapOne(hexToInt(char, dataSize), code);
|
459
539
|
}
|
540
|
+
|
460
541
|
break;
|
542
|
+
|
461
543
|
case 3:
|
462
544
|
stream.readHex(start, dataSize);
|
463
545
|
stream.readHexNumber(end, dataSize);
|
464
546
|
addHex(end, start, dataSize);
|
465
547
|
code = stream.readNumber();
|
466
548
|
cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);
|
549
|
+
|
467
550
|
for (i = 1; i < subitemsCount; i++) {
|
468
551
|
incHex(end, dataSize);
|
552
|
+
|
469
553
|
if (!sequence) {
|
470
554
|
stream.readHexNumber(start, dataSize);
|
471
555
|
addHex(start, end, dataSize);
|
472
556
|
} else {
|
473
557
|
start.set(end);
|
474
558
|
}
|
559
|
+
|
475
560
|
stream.readHexNumber(end, dataSize);
|
476
561
|
addHex(end, start, dataSize);
|
477
562
|
code = stream.readNumber();
|
478
563
|
cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);
|
479
564
|
}
|
565
|
+
|
480
566
|
break;
|
567
|
+
|
481
568
|
case 4:
|
482
569
|
stream.readHex(char, ucs2DataSize);
|
483
570
|
stream.readHex(charCode, dataSize);
|
484
571
|
cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));
|
572
|
+
|
485
573
|
for (i = 1; i < subitemsCount; i++) {
|
486
574
|
incHex(char, ucs2DataSize);
|
575
|
+
|
487
576
|
if (!sequence) {
|
488
577
|
stream.readHexNumber(tmp, ucs2DataSize);
|
489
578
|
addHex(char, tmp, ucs2DataSize);
|
490
579
|
}
|
580
|
+
|
491
581
|
incHex(charCode, dataSize);
|
492
582
|
stream.readHexSigned(tmp, dataSize);
|
493
583
|
addHex(charCode, tmp, dataSize);
|
494
584
|
cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));
|
495
585
|
}
|
586
|
+
|
496
587
|
break;
|
588
|
+
|
497
589
|
case 5:
|
498
590
|
stream.readHex(start, ucs2DataSize);
|
499
591
|
stream.readHexNumber(end, ucs2DataSize);
|
500
592
|
addHex(end, start, ucs2DataSize);
|
501
593
|
stream.readHex(charCode, dataSize);
|
502
594
|
cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));
|
595
|
+
|
503
596
|
for (i = 1; i < subitemsCount; i++) {
|
504
597
|
incHex(end, ucs2DataSize);
|
598
|
+
|
505
599
|
if (!sequence) {
|
506
600
|
stream.readHexNumber(start, ucs2DataSize);
|
507
601
|
addHex(start, end, ucs2DataSize);
|
508
602
|
} else {
|
509
603
|
start.set(end);
|
510
604
|
}
|
605
|
+
|
511
606
|
stream.readHexNumber(end, ucs2DataSize);
|
512
607
|
addHex(end, start, ucs2DataSize);
|
513
608
|
stream.readHex(charCode, dataSize);
|
514
609
|
cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));
|
515
610
|
}
|
611
|
+
|
516
612
|
break;
|
613
|
+
|
517
614
|
default:
|
518
615
|
reject(new Error('processBinaryCMap: Unknown type: ' + type));
|
519
616
|
return;
|
520
617
|
}
|
521
618
|
}
|
619
|
+
|
522
620
|
if (useCMap) {
|
523
621
|
resolve(extend(useCMap));
|
524
622
|
return;
|
525
623
|
}
|
624
|
+
|
526
625
|
resolve(cMap);
|
527
626
|
});
|
528
627
|
}
|
628
|
+
|
529
629
|
function BinaryCMapReader() {}
|
530
|
-
|
630
|
+
|
631
|
+
BinaryCMapReader.prototype = {
|
632
|
+
process: processBinaryCMap
|
633
|
+
};
|
531
634
|
return BinaryCMapReader;
|
532
635
|
}();
|
636
|
+
|
533
637
|
var CMapFactory = function CMapFactoryClosure() {
|
534
638
|
function strToInt(str) {
|
535
639
|
var a = 0;
|
640
|
+
|
536
641
|
for (var i = 0; i < str.length; i++) {
|
537
642
|
a = a << 8 | str.charCodeAt(i);
|
538
643
|
}
|
644
|
+
|
539
645
|
return a >>> 0;
|
540
646
|
}
|
647
|
+
|
541
648
|
function expectString(obj) {
|
542
649
|
if (!(0, _util.isString)(obj)) {
|
543
650
|
throw new _util.FormatError('Malformed CMap: expected string.');
|
544
651
|
}
|
545
652
|
}
|
653
|
+
|
546
654
|
function expectInt(obj) {
|
547
655
|
if (!Number.isInteger(obj)) {
|
548
656
|
throw new _util.FormatError('Malformed CMap: expected int.');
|
549
657
|
}
|
550
658
|
}
|
659
|
+
|
551
660
|
function parseBfChar(cMap, lexer) {
|
552
661
|
while (true) {
|
553
662
|
var obj = lexer.getObj();
|
663
|
+
|
554
664
|
if ((0, _primitives.isEOF)(obj)) {
|
555
665
|
break;
|
556
666
|
}
|
667
|
+
|
557
668
|
if ((0, _primitives.isCmd)(obj, 'endbfchar')) {
|
558
669
|
return;
|
559
670
|
}
|
671
|
+
|
560
672
|
expectString(obj);
|
561
673
|
var src = strToInt(obj);
|
562
674
|
obj = lexer.getObj();
|
@@ -565,47 +677,59 @@ var CMapFactory = function CMapFactoryClosure() {
|
|
565
677
|
cMap.mapOne(src, dst);
|
566
678
|
}
|
567
679
|
}
|
680
|
+
|
568
681
|
function parseBfRange(cMap, lexer) {
|
569
682
|
while (true) {
|
570
683
|
var obj = lexer.getObj();
|
684
|
+
|
571
685
|
if ((0, _primitives.isEOF)(obj)) {
|
572
686
|
break;
|
573
687
|
}
|
688
|
+
|
574
689
|
if ((0, _primitives.isCmd)(obj, 'endbfrange')) {
|
575
690
|
return;
|
576
691
|
}
|
692
|
+
|
577
693
|
expectString(obj);
|
578
694
|
var low = strToInt(obj);
|
579
695
|
obj = lexer.getObj();
|
580
696
|
expectString(obj);
|
581
697
|
var high = strToInt(obj);
|
582
698
|
obj = lexer.getObj();
|
699
|
+
|
583
700
|
if (Number.isInteger(obj) || (0, _util.isString)(obj)) {
|
584
701
|
var dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;
|
585
702
|
cMap.mapBfRange(low, high, dstLow);
|
586
703
|
} else if ((0, _primitives.isCmd)(obj, '[')) {
|
587
704
|
obj = lexer.getObj();
|
588
705
|
var array = [];
|
706
|
+
|
589
707
|
while (!(0, _primitives.isCmd)(obj, ']') && !(0, _primitives.isEOF)(obj)) {
|
590
708
|
array.push(obj);
|
591
709
|
obj = lexer.getObj();
|
592
710
|
}
|
711
|
+
|
593
712
|
cMap.mapBfRangeToArray(low, high, array);
|
594
713
|
} else {
|
595
714
|
break;
|
596
715
|
}
|
597
716
|
}
|
717
|
+
|
598
718
|
throw new _util.FormatError('Invalid bf range.');
|
599
719
|
}
|
720
|
+
|
600
721
|
function parseCidChar(cMap, lexer) {
|
601
722
|
while (true) {
|
602
723
|
var obj = lexer.getObj();
|
724
|
+
|
603
725
|
if ((0, _primitives.isEOF)(obj)) {
|
604
726
|
break;
|
605
727
|
}
|
728
|
+
|
606
729
|
if ((0, _primitives.isCmd)(obj, 'endcidchar')) {
|
607
730
|
return;
|
608
731
|
}
|
732
|
+
|
609
733
|
expectString(obj);
|
610
734
|
var src = strToInt(obj);
|
611
735
|
obj = lexer.getObj();
|
@@ -614,15 +738,19 @@ var CMapFactory = function CMapFactoryClosure() {
|
|
614
738
|
cMap.mapOne(src, dst);
|
615
739
|
}
|
616
740
|
}
|
741
|
+
|
617
742
|
function parseCidRange(cMap, lexer) {
|
618
743
|
while (true) {
|
619
744
|
var obj = lexer.getObj();
|
745
|
+
|
620
746
|
if ((0, _primitives.isEOF)(obj)) {
|
621
747
|
break;
|
622
748
|
}
|
749
|
+
|
623
750
|
if ((0, _primitives.isCmd)(obj, 'endcidrange')) {
|
624
751
|
return;
|
625
752
|
}
|
753
|
+
|
626
754
|
expectString(obj);
|
627
755
|
var low = strToInt(obj);
|
628
756
|
obj = lexer.getObj();
|
@@ -634,46 +762,61 @@ var CMapFactory = function CMapFactoryClosure() {
|
|
634
762
|
cMap.mapCidRange(low, high, dstLow);
|
635
763
|
}
|
636
764
|
}
|
765
|
+
|
637
766
|
function parseCodespaceRange(cMap, lexer) {
|
638
767
|
while (true) {
|
639
768
|
var obj = lexer.getObj();
|
769
|
+
|
640
770
|
if ((0, _primitives.isEOF)(obj)) {
|
641
771
|
break;
|
642
772
|
}
|
773
|
+
|
643
774
|
if ((0, _primitives.isCmd)(obj, 'endcodespacerange')) {
|
644
775
|
return;
|
645
776
|
}
|
777
|
+
|
646
778
|
if (!(0, _util.isString)(obj)) {
|
647
779
|
break;
|
648
780
|
}
|
781
|
+
|
649
782
|
var low = strToInt(obj);
|
650
783
|
obj = lexer.getObj();
|
784
|
+
|
651
785
|
if (!(0, _util.isString)(obj)) {
|
652
786
|
break;
|
653
787
|
}
|
788
|
+
|
654
789
|
var high = strToInt(obj);
|
655
790
|
cMap.addCodespaceRange(obj.length, low, high);
|
656
791
|
}
|
792
|
+
|
657
793
|
throw new _util.FormatError('Invalid codespace range.');
|
658
794
|
}
|
795
|
+
|
659
796
|
function parseWMode(cMap, lexer) {
|
660
797
|
var obj = lexer.getObj();
|
798
|
+
|
661
799
|
if (Number.isInteger(obj)) {
|
662
800
|
cMap.vertical = !!obj;
|
663
801
|
}
|
664
802
|
}
|
803
|
+
|
665
804
|
function parseCMapName(cMap, lexer) {
|
666
805
|
var obj = lexer.getObj();
|
806
|
+
|
667
807
|
if ((0, _primitives.isName)(obj) && (0, _util.isString)(obj.name)) {
|
668
808
|
cMap.name = obj.name;
|
669
809
|
}
|
670
810
|
}
|
811
|
+
|
671
812
|
function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {
|
672
813
|
var previous;
|
673
814
|
var embeddedUseCMap;
|
815
|
+
|
674
816
|
objLoop: while (true) {
|
675
817
|
try {
|
676
818
|
var obj = lexer.getObj();
|
819
|
+
|
677
820
|
if ((0, _primitives.isEOF)(obj)) {
|
678
821
|
break;
|
679
822
|
} else if ((0, _primitives.isName)(obj)) {
|
@@ -682,28 +825,36 @@ var CMapFactory = function CMapFactoryClosure() {
|
|
682
825
|
} else if (obj.name === 'CMapName') {
|
683
826
|
parseCMapName(cMap, lexer);
|
684
827
|
}
|
828
|
+
|
685
829
|
previous = obj;
|
686
830
|
} else if ((0, _primitives.isCmd)(obj)) {
|
687
831
|
switch (obj.cmd) {
|
688
832
|
case 'endcmap':
|
689
833
|
break objLoop;
|
834
|
+
|
690
835
|
case 'usecmap':
|
691
836
|
if ((0, _primitives.isName)(previous)) {
|
692
837
|
embeddedUseCMap = previous.name;
|
693
838
|
}
|
839
|
+
|
694
840
|
break;
|
841
|
+
|
695
842
|
case 'begincodespacerange':
|
696
843
|
parseCodespaceRange(cMap, lexer);
|
697
844
|
break;
|
845
|
+
|
698
846
|
case 'beginbfchar':
|
699
847
|
parseBfChar(cMap, lexer);
|
700
848
|
break;
|
849
|
+
|
701
850
|
case 'begincidchar':
|
702
851
|
parseCidChar(cMap, lexer);
|
703
852
|
break;
|
853
|
+
|
704
854
|
case 'beginbfrange':
|
705
855
|
parseBfRange(cMap, lexer);
|
706
856
|
break;
|
857
|
+
|
707
858
|
case 'begincidrange':
|
708
859
|
parseCidRange(cMap, lexer);
|
709
860
|
break;
|
@@ -713,28 +864,37 @@ var CMapFactory = function CMapFactoryClosure() {
|
|
713
864
|
if (ex instanceof _util.MissingDataException) {
|
714
865
|
throw ex;
|
715
866
|
}
|
867
|
+
|
716
868
|
(0, _util.warn)('Invalid cMap data: ' + ex);
|
717
869
|
continue;
|
718
870
|
}
|
719
871
|
}
|
872
|
+
|
720
873
|
if (!useCMap && embeddedUseCMap) {
|
721
874
|
useCMap = embeddedUseCMap;
|
722
875
|
}
|
876
|
+
|
723
877
|
if (useCMap) {
|
724
878
|
return extendCMap(cMap, fetchBuiltInCMap, useCMap);
|
725
879
|
}
|
880
|
+
|
726
881
|
return Promise.resolve(cMap);
|
727
882
|
}
|
883
|
+
|
728
884
|
function extendCMap(cMap, fetchBuiltInCMap, useCMap) {
|
729
885
|
return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) {
|
730
886
|
cMap.useCMap = newCMap;
|
887
|
+
|
731
888
|
if (cMap.numCodespaceRanges === 0) {
|
732
889
|
var useCodespaceRanges = cMap.useCMap.codespaceRanges;
|
890
|
+
|
733
891
|
for (var i = 0; i < useCodespaceRanges.length; i++) {
|
734
892
|
cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();
|
735
893
|
}
|
894
|
+
|
736
895
|
cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;
|
737
896
|
}
|
897
|
+
|
738
898
|
cMap.useCMap.forEach(function (key, value) {
|
739
899
|
if (!cMap.contains(key)) {
|
740
900
|
cMap.mapOne(key, cMap.useCMap.lookup(key));
|
@@ -743,39 +903,48 @@ var CMapFactory = function CMapFactoryClosure() {
|
|
743
903
|
return cMap;
|
744
904
|
});
|
745
905
|
}
|
906
|
+
|
746
907
|
function createBuiltInCMap(name, fetchBuiltInCMap) {
|
747
908
|
if (name === 'Identity-H') {
|
748
909
|
return Promise.resolve(new IdentityCMap(false, 2));
|
749
910
|
} else if (name === 'Identity-V') {
|
750
911
|
return Promise.resolve(new IdentityCMap(true, 2));
|
751
912
|
}
|
913
|
+
|
752
914
|
if (!BUILT_IN_CMAPS.includes(name)) {
|
753
915
|
return Promise.reject(new Error('Unknown CMap name: ' + name));
|
754
916
|
}
|
917
|
+
|
755
918
|
if (!fetchBuiltInCMap) {
|
756
919
|
return Promise.reject(new Error('Built-in CMap parameters are not provided.'));
|
757
920
|
}
|
921
|
+
|
758
922
|
return fetchBuiltInCMap(name).then(function (data) {
|
759
923
|
var cMapData = data.cMapData,
|
760
924
|
compressionType = data.compressionType;
|
761
925
|
var cMap = new CMap(true);
|
926
|
+
|
762
927
|
if (compressionType === _util.CMapCompressionType.BINARY) {
|
763
928
|
return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) {
|
764
929
|
return extendCMap(cMap, fetchBuiltInCMap, useCMap);
|
765
930
|
});
|
766
931
|
}
|
932
|
+
|
767
933
|
if (compressionType === _util.CMapCompressionType.NONE) {
|
768
934
|
var lexer = new _parser.Lexer(new _stream.Stream(cMapData));
|
769
935
|
return parseCMap(cMap, lexer, fetchBuiltInCMap, null);
|
770
936
|
}
|
937
|
+
|
771
938
|
return Promise.reject(new Error('TODO: Only BINARY/NONE CMap compression is currently supported.'));
|
772
939
|
});
|
773
940
|
}
|
941
|
+
|
774
942
|
return {
|
775
943
|
create: function create(params) {
|
776
944
|
var encoding = params.encoding;
|
777
945
|
var fetchBuiltInCMap = params.fetchBuiltInCMap;
|
778
946
|
var useCMap = params.useCMap;
|
947
|
+
|
779
948
|
if ((0, _primitives.isName)(encoding)) {
|
780
949
|
return createBuiltInCMap(encoding.name, fetchBuiltInCMap);
|
781
950
|
} else if ((0, _primitives.isStream)(encoding)) {
|
@@ -785,13 +954,14 @@ var CMapFactory = function CMapFactoryClosure() {
|
|
785
954
|
if (parsedCMap.isIdentityCMap) {
|
786
955
|
return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);
|
787
956
|
}
|
957
|
+
|
788
958
|
return parsedCMap;
|
789
959
|
});
|
790
960
|
}
|
961
|
+
|
791
962
|
return Promise.reject(new Error('Encoding required.'));
|
792
963
|
}
|
793
964
|
};
|
794
965
|
}();
|
795
|
-
|
796
|
-
exports.IdentityCMap = IdentityCMap;
|
966
|
+
|
797
967
|
exports.CMapFactory = CMapFactory;
|