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