pdfjs-dist 2.6.347 → 2.7.570
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/README.md +3 -3
- package/bower.json +1 -1
- package/build/pdf.js +2050 -1087
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +18219 -10436
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/es5/build/pdf.d.ts +1 -0
- package/es5/build/pdf.js +6623 -6654
- package/es5/build/pdf.js.map +1 -1
- package/es5/build/pdf.min.js +1 -1
- package/es5/build/pdf.worker.js +20815 -13888
- package/es5/build/pdf.worker.js.map +1 -1
- package/es5/build/pdf.worker.min.js +1 -1
- package/es5/image_decoders/pdf.image_decoders.js +3817 -4946
- package/es5/image_decoders/pdf.image_decoders.js.map +1 -1
- package/es5/image_decoders/pdf.image_decoders.min.js +1 -1
- package/es5/web/pdf_viewer.css +18 -15
- package/es5/web/pdf_viewer.js +1094 -514
- package/es5/web/pdf_viewer.js.map +1 -1
- package/image_decoders/pdf.image_decoders.js +774 -168
- 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 +556 -108
- package/lib/core/cff_parser.js +7 -1
- package/lib/core/charsets.js +1 -1
- package/lib/core/cmap.js +20 -1
- package/lib/core/core_utils.js +162 -3
- package/lib/core/crypto.js +1 -1
- package/lib/core/default_appearance.js +132 -0
- package/lib/core/document.js +115 -9
- package/lib/core/encodings.js +1 -1
- package/lib/core/evaluator.js +168 -74
- package/lib/core/fonts.js +97 -11
- package/lib/core/function.js +5 -10
- package/lib/core/glyphlist.js +11 -4529
- package/lib/core/image_utils.js +30 -1
- package/lib/core/jpg.js +1 -1
- package/lib/core/jpx.js +5 -5
- package/lib/core/murmurhash3.js +1 -1
- package/lib/core/obj.js +123 -39
- package/lib/core/pattern.js +4 -4
- package/lib/core/primitives.js +24 -5
- package/lib/core/standard_fonts.js +1 -1
- package/lib/core/stream.js +5 -1
- package/lib/core/unicode.js +15 -1387
- package/lib/core/worker.js +58 -17
- package/lib/core/writer.js +68 -4
- package/lib/display/annotation_layer.js +712 -119
- package/lib/display/annotation_storage.js +21 -4
- package/lib/display/api.js +88 -18
- package/lib/display/canvas.js +414 -375
- package/lib/display/display_utils.js +11 -4
- package/lib/display/fetch_stream.js +3 -3
- package/lib/display/font_loader.js +2 -3
- package/lib/display/metadata.js +54 -20
- package/lib/display/node_stream.js +1 -1
- package/lib/display/optional_content_config.js +1 -1
- package/lib/display/pattern_helper.js +109 -113
- package/lib/display/svg.js +5 -5
- package/lib/display/text_layer.js +54 -54
- package/lib/display/transport_stream.js +4 -4
- package/lib/display/webgl.js +65 -68
- package/lib/examples/node/domstubs.js +9 -4
- package/lib/pdf.js +2 -2
- package/lib/pdf.sandbox.js +311 -0
- package/lib/pdf.worker.js +2 -2
- package/lib/shared/scripting_utils.js +84 -0
- package/lib/shared/util.js +129 -14
- package/lib/{display → shared}/xml_parser.js +112 -4
- package/lib/test/unit/annotation_spec.js +831 -109
- package/lib/test/unit/annotation_storage_spec.js +28 -10
- package/lib/test/unit/api_spec.js +190 -160
- package/lib/test/unit/bidi_spec.js +6 -6
- package/lib/test/unit/cff_parser_spec.js +73 -73
- package/lib/test/unit/clitests_helper.js +2 -0
- package/lib/test/unit/cmap_spec.js +48 -74
- package/lib/test/unit/core_utils_spec.js +34 -0
- package/lib/test/unit/crypto_spec.js +162 -199
- package/lib/test/unit/custom_spec.js +7 -18
- package/lib/test/unit/default_appearance_spec.js +54 -0
- package/lib/test/unit/display_svg_spec.js +24 -19
- package/lib/test/unit/display_utils_spec.js +1 -1
- package/lib/test/unit/document_spec.js +187 -20
- package/lib/test/unit/evaluator_spec.js +30 -30
- package/lib/test/unit/function_spec.js +165 -165
- package/lib/test/unit/jasmine-boot.js +52 -53
- package/lib/test/unit/metadata_spec.js +2 -2
- package/lib/test/unit/murmurhash3_spec.js +29 -16
- package/lib/test/unit/network_spec.js +21 -21
- package/lib/test/unit/pdf_find_controller_spec.js +131 -69
- package/lib/test/unit/pdf_find_utils_spec.js +10 -10
- package/lib/test/unit/scripting_spec.js +1104 -0
- package/lib/test/unit/stream_spec.js +8 -8
- package/lib/test/unit/test_utils.js +16 -19
- package/lib/test/unit/testreporter.js +11 -4
- package/lib/test/unit/type1_parser_spec.js +23 -23
- package/lib/test/unit/ui_utils_spec.js +78 -35
- package/lib/test/unit/unicode_spec.js +7 -7
- package/lib/test/unit/util_spec.js +26 -3
- package/lib/test/unit/writer_spec.js +16 -1
- package/lib/test/unit/xml_spec.js +117 -0
- package/lib/web/annotation_layer_builder.js +18 -6
- package/lib/web/app.js +579 -161
- package/lib/web/app_options.js +14 -0
- package/lib/web/base_tree_viewer.js +50 -0
- package/lib/web/base_viewer.js +350 -14
- package/lib/web/chromecom.js +9 -1
- package/lib/web/debugger.js +1 -2
- package/lib/web/download_manager.js +0 -15
- package/lib/web/firefox_print_service.js +6 -4
- package/lib/web/firefoxcom.js +84 -69
- package/lib/web/generic_scripting.js +55 -0
- package/lib/web/genericcom.js +9 -1
- package/lib/web/grab_to_pan.js +1 -1
- package/lib/web/interfaces.js +9 -3
- package/lib/web/pdf_attachment_viewer.js +1 -3
- package/lib/web/pdf_cursor_tools.js +20 -13
- package/lib/web/pdf_document_properties.js +48 -61
- package/lib/web/pdf_find_bar.js +1 -3
- package/lib/web/pdf_find_controller.js +58 -12
- package/lib/web/pdf_history.js +43 -21
- package/lib/web/pdf_layer_viewer.js +1 -9
- package/lib/web/pdf_link_service.js +108 -78
- package/lib/web/pdf_outline_viewer.js +166 -10
- package/lib/web/pdf_page_view.js +14 -14
- package/lib/web/pdf_presentation_mode.js +21 -31
- package/lib/web/pdf_rendering_queue.js +8 -1
- package/lib/web/pdf_sidebar.js +62 -107
- package/lib/web/pdf_sidebar_resizer.js +11 -21
- package/lib/web/pdf_single_page_viewer.js +8 -0
- package/lib/web/pdf_thumbnail_view.js +26 -26
- package/lib/web/pdf_thumbnail_viewer.js +13 -2
- package/lib/web/pdf_viewer.component.js +2 -2
- package/lib/web/pdf_viewer.js +3 -1
- package/lib/web/preferences.js +33 -44
- package/lib/web/text_layer_builder.js +2 -9
- package/lib/web/ui_utils.js +78 -46
- package/lib/web/viewer_compatibility.js +1 -2
- package/package.json +4 -1
- package/types/display/annotation_layer.d.ts +18 -3
- package/types/display/api.d.ts +110 -54
- package/types/display/canvas.d.ts +1 -1
- package/types/display/display_utils.d.ts +96 -95
- package/types/display/fetch_stream.d.ts +2 -2
- package/types/display/metadata.d.ts +4 -0
- package/types/display/pattern_helper.d.ts +1 -1
- package/types/display/text_layer.d.ts +7 -7
- package/types/display/transport_stream.d.ts +1 -1
- package/types/shared/scripting_utils.d.ts +12 -0
- package/types/shared/util.d.ts +281 -250
- package/types/shared/xml_parser.d.ts +64 -0
- package/web/pdf_viewer.css +18 -15
- package/web/pdf_viewer.js +809 -408
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +1 -1
- package/types/display/xml_parser.d.ts +0 -35
@@ -26,12 +26,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
26
26
|
});
|
27
27
|
exports.FirefoxPrintService = FirefoxPrintService;
|
28
28
|
|
29
|
+
var _pdf = require("../pdf");
|
30
|
+
|
29
31
|
var _ui_utils = require("./ui_utils.js");
|
30
32
|
|
31
33
|
var _app = require("./app.js");
|
32
34
|
|
33
|
-
var _pdf = require("../pdf");
|
34
|
-
|
35
35
|
function composePage(pdfDocument, pageNumber, size, printContainer, printResolution, optionalContentConfigPromise) {
|
36
36
|
const canvas = document.createElement("canvas");
|
37
37
|
const PRINT_UNITS = printResolution / 72.0;
|
@@ -76,8 +76,10 @@ function composePage(pdfDocument, pageNumber, size, printContainer, printResolut
|
|
76
76
|
}
|
77
77
|
|
78
78
|
obj.done();
|
79
|
-
}, function (
|
80
|
-
|
79
|
+
}, function (reason) {
|
80
|
+
if (!(reason instanceof _pdf.RenderingCancelledException)) {
|
81
|
+
console.error(reason);
|
82
|
+
}
|
81
83
|
|
82
84
|
if (currentRenderTask === thisRenderTask) {
|
83
85
|
currentRenderTask.cancel();
|
package/lib/web/firefoxcom.js
CHANGED
@@ -40,49 +40,53 @@ var _ui_utils = require("./ui_utils.js");
|
|
40
40
|
throw new Error('Module "./firefoxcom.js" shall not be used outside MOZCENTRAL builds.');
|
41
41
|
}
|
42
42
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
},
|
59
|
-
|
60
|
-
request(action, data, callback) {
|
61
|
-
const request = document.createTextNode("");
|
62
|
-
|
63
|
-
if (callback) {
|
64
|
-
document.addEventListener("pdf.js.response", function listener(event) {
|
65
|
-
const node = event.target;
|
66
|
-
const response = event.detail.response;
|
67
|
-
document.documentElement.removeChild(node);
|
68
|
-
document.removeEventListener("pdf.js.response", listener);
|
69
|
-
return callback(response);
|
70
|
-
});
|
71
|
-
}
|
43
|
+
class FirefoxCom {
|
44
|
+
static requestSync(action, data) {
|
45
|
+
const request = document.createTextNode("");
|
46
|
+
document.documentElement.appendChild(request);
|
47
|
+
const sender = document.createEvent("CustomEvent");
|
48
|
+
sender.initCustomEvent("pdf.js.message", true, false, {
|
49
|
+
action,
|
50
|
+
data,
|
51
|
+
sync: true
|
52
|
+
});
|
53
|
+
request.dispatchEvent(sender);
|
54
|
+
const response = sender.detail.response;
|
55
|
+
request.remove();
|
56
|
+
return response;
|
57
|
+
}
|
72
58
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
59
|
+
static requestAsync(action, data) {
|
60
|
+
return new Promise(resolve => {
|
61
|
+
this.request(action, data, resolve);
|
62
|
+
});
|
63
|
+
}
|
64
|
+
|
65
|
+
static request(action, data, callback = null) {
|
66
|
+
const request = document.createTextNode("");
|
67
|
+
|
68
|
+
if (callback) {
|
69
|
+
request.addEventListener("pdf.js.response", event => {
|
70
|
+
const response = event.detail.response;
|
71
|
+
event.target.remove();
|
72
|
+
callback(response);
|
73
|
+
}, {
|
74
|
+
once: true
|
80
75
|
});
|
81
|
-
return request.dispatchEvent(sender);
|
82
76
|
}
|
83
77
|
|
84
|
-
|
85
|
-
|
78
|
+
document.documentElement.appendChild(request);
|
79
|
+
const sender = document.createEvent("CustomEvent");
|
80
|
+
sender.initCustomEvent("pdf.js.message", true, false, {
|
81
|
+
action,
|
82
|
+
data,
|
83
|
+
sync: false,
|
84
|
+
responseExpected: !!callback
|
85
|
+
});
|
86
|
+
request.dispatchEvent(sender);
|
87
|
+
}
|
88
|
+
|
89
|
+
}
|
86
90
|
|
87
91
|
exports.FirefoxCom = FirefoxCom;
|
88
92
|
|
@@ -98,36 +102,30 @@ class DownloadManager {
|
|
98
102
|
const blobUrl = URL.createObjectURL(new Blob([data], {
|
99
103
|
type: contentType
|
100
104
|
}));
|
101
|
-
|
102
|
-
const onResponse = err => {
|
103
|
-
URL.revokeObjectURL(blobUrl);
|
104
|
-
};
|
105
|
-
|
106
|
-
FirefoxCom.request("download", {
|
105
|
+
FirefoxCom.requestAsync("download", {
|
107
106
|
blobUrl,
|
108
107
|
originalUrl: blobUrl,
|
109
108
|
filename,
|
110
109
|
isAttachment: true
|
111
|
-
}
|
110
|
+
}).then(error => {
|
111
|
+
URL.revokeObjectURL(blobUrl);
|
112
|
+
});
|
112
113
|
}
|
113
114
|
|
114
115
|
download(blob, url, filename, sourceEventType = "download") {
|
115
116
|
const blobUrl = URL.createObjectURL(blob);
|
116
|
-
|
117
|
-
const onResponse = err => {
|
118
|
-
if (err && this.onerror) {
|
119
|
-
this.onerror(err);
|
120
|
-
}
|
121
|
-
|
122
|
-
URL.revokeObjectURL(blobUrl);
|
123
|
-
};
|
124
|
-
|
125
|
-
FirefoxCom.request("download", {
|
117
|
+
FirefoxCom.requestAsync("download", {
|
126
118
|
blobUrl,
|
127
119
|
originalUrl: url,
|
128
120
|
filename,
|
129
121
|
sourceEventType
|
130
|
-
}
|
122
|
+
}).then(error => {
|
123
|
+
if (error) {
|
124
|
+
console.error("`ChromeActions.download` failed.");
|
125
|
+
}
|
126
|
+
|
127
|
+
URL.revokeObjectURL(blobUrl);
|
128
|
+
});
|
131
129
|
}
|
132
130
|
|
133
131
|
}
|
@@ -136,18 +134,12 @@ exports.DownloadManager = DownloadManager;
|
|
136
134
|
|
137
135
|
class FirefoxPreferences extends _preferences.BasePreferences {
|
138
136
|
async _writeToStorage(prefObj) {
|
139
|
-
return
|
140
|
-
FirefoxCom.request("setPreferences", prefObj, resolve);
|
141
|
-
});
|
137
|
+
return FirefoxCom.requestAsync("setPreferences", prefObj);
|
142
138
|
}
|
143
139
|
|
144
140
|
async _readFromStorage(prefObj) {
|
145
|
-
|
146
|
-
|
147
|
-
const readPrefs = JSON.parse(prefStr);
|
148
|
-
resolve(readPrefs);
|
149
|
-
});
|
150
|
-
});
|
141
|
+
const prefStr = await FirefoxCom.requestAsync("getPreferences", prefObj);
|
142
|
+
return JSON.parse(prefStr);
|
151
143
|
}
|
152
144
|
|
153
145
|
}
|
@@ -267,6 +259,25 @@ class FirefoxComDataRangeTransport extends _pdf.PDFDataRangeTransport {
|
|
267
259
|
|
268
260
|
}
|
269
261
|
|
262
|
+
class FirefoxScripting {
|
263
|
+
static async createSandbox(data) {
|
264
|
+
const success = await FirefoxCom.requestAsync("createSandbox", data);
|
265
|
+
|
266
|
+
if (!success) {
|
267
|
+
throw new Error("Cannot create sandbox.");
|
268
|
+
}
|
269
|
+
}
|
270
|
+
|
271
|
+
static async dispatchEventInSandbox(event) {
|
272
|
+
FirefoxCom.request("dispatchEventInSandbox", event);
|
273
|
+
}
|
274
|
+
|
275
|
+
static async destroySandbox() {
|
276
|
+
FirefoxCom.request("destroySandbox", null);
|
277
|
+
}
|
278
|
+
|
279
|
+
}
|
280
|
+
|
270
281
|
class FirefoxExternalServices extends _app.DefaultExternalServices {
|
271
282
|
static updateFindControlState(data) {
|
272
283
|
FirefoxCom.request("updateFindControlState", data);
|
@@ -333,8 +344,8 @@ class FirefoxExternalServices extends _app.DefaultExternalServices {
|
|
333
344
|
FirefoxCom.requestSync("initPassiveLoading", null);
|
334
345
|
}
|
335
346
|
|
336
|
-
static fallback(data
|
337
|
-
FirefoxCom.
|
347
|
+
static async fallback(data) {
|
348
|
+
return FirefoxCom.requestAsync("fallback", data);
|
338
349
|
}
|
339
350
|
|
340
351
|
static reportTelemetry(data) {
|
@@ -342,7 +353,7 @@ class FirefoxExternalServices extends _app.DefaultExternalServices {
|
|
342
353
|
}
|
343
354
|
|
344
355
|
static createDownloadManager(options) {
|
345
|
-
return new DownloadManager(
|
356
|
+
return new DownloadManager();
|
346
357
|
}
|
347
358
|
|
348
359
|
static createPreferences() {
|
@@ -354,6 +365,10 @@ class FirefoxExternalServices extends _app.DefaultExternalServices {
|
|
354
365
|
return new MozL10n(mozL10n);
|
355
366
|
}
|
356
367
|
|
368
|
+
static createScripting(options) {
|
369
|
+
return FirefoxScripting;
|
370
|
+
}
|
371
|
+
|
357
372
|
static get supportsIntegratedFind() {
|
358
373
|
const support = FirefoxCom.requestSync("supportsIntegratedFind");
|
359
374
|
return (0, _pdf.shadow)(this, "supportsIntegratedFind", support);
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/**
|
2
|
+
* @licstart The following is the entire license notice for the
|
3
|
+
* Javascript code in this page
|
4
|
+
*
|
5
|
+
* Copyright 2020 Mozilla Foundation
|
6
|
+
*
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
* you may not use this file except in compliance with the License.
|
9
|
+
* You may obtain a copy of the License at
|
10
|
+
*
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
*
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
* See the License for the specific language governing permissions and
|
17
|
+
* limitations under the License.
|
18
|
+
*
|
19
|
+
* @licend The above is the entire license notice for the
|
20
|
+
* Javascript code in this page
|
21
|
+
*/
|
22
|
+
"use strict";
|
23
|
+
|
24
|
+
Object.defineProperty(exports, "__esModule", {
|
25
|
+
value: true
|
26
|
+
});
|
27
|
+
exports.GenericScripting = void 0;
|
28
|
+
|
29
|
+
var _pdf = require("../pdf");
|
30
|
+
|
31
|
+
class GenericScripting {
|
32
|
+
constructor(sandboxBundleSrc) {
|
33
|
+
this._ready = (0, _pdf.loadScript)(sandboxBundleSrc, true).then(() => {
|
34
|
+
return window.pdfjsSandbox.QuickJSSandbox();
|
35
|
+
});
|
36
|
+
}
|
37
|
+
|
38
|
+
async createSandbox(data) {
|
39
|
+
const sandbox = await this._ready;
|
40
|
+
sandbox.create(data);
|
41
|
+
}
|
42
|
+
|
43
|
+
async dispatchEventInSandbox(event) {
|
44
|
+
const sandbox = await this._ready;
|
45
|
+
sandbox.dispatchEvent(event);
|
46
|
+
}
|
47
|
+
|
48
|
+
async destroySandbox() {
|
49
|
+
const sandbox = await this._ready;
|
50
|
+
sandbox.nukeSandbox();
|
51
|
+
}
|
52
|
+
|
53
|
+
}
|
54
|
+
|
55
|
+
exports.GenericScripting = GenericScripting;
|
package/lib/web/genericcom.js
CHANGED
@@ -34,6 +34,8 @@ var _download_manager = require("./download_manager.js");
|
|
34
34
|
|
35
35
|
var _genericl10n = require("./genericl10n.js");
|
36
36
|
|
37
|
+
var _generic_scripting = require("./generic_scripting.js");
|
38
|
+
|
37
39
|
;
|
38
40
|
const GenericCom = {};
|
39
41
|
exports.GenericCom = GenericCom;
|
@@ -51,7 +53,7 @@ class GenericPreferences extends _preferences.BasePreferences {
|
|
51
53
|
|
52
54
|
class GenericExternalServices extends _app.DefaultExternalServices {
|
53
55
|
static createDownloadManager(options) {
|
54
|
-
return new _download_manager.DownloadManager(
|
56
|
+
return new _download_manager.DownloadManager();
|
55
57
|
}
|
56
58
|
|
57
59
|
static createPreferences() {
|
@@ -64,6 +66,12 @@ class GenericExternalServices extends _app.DefaultExternalServices {
|
|
64
66
|
return new _genericl10n.GenericL10n(locale);
|
65
67
|
}
|
66
68
|
|
69
|
+
static createScripting({
|
70
|
+
sandboxBundleSrc
|
71
|
+
}) {
|
72
|
+
return new _generic_scripting.GenericScripting(sandboxBundleSrc);
|
73
|
+
}
|
74
|
+
|
67
75
|
}
|
68
76
|
|
69
77
|
_app.PDFViewerApplication.externalServices = GenericExternalServices;
|
package/lib/web/grab_to_pan.js
CHANGED
@@ -147,7 +147,7 @@ GrabToPan.prototype = {
|
|
147
147
|
}
|
148
148
|
};
|
149
149
|
let matchesSelector;
|
150
|
-
["webkitM", "mozM", "
|
150
|
+
["webkitM", "mozM", "m"].some(function (prefix) {
|
151
151
|
let name = prefix + "atches";
|
152
152
|
|
153
153
|
if (name in document.documentElement) {
|
package/lib/web/interfaces.js
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.
|
27
|
+
exports.IRenderableView = exports.IPDFTextLayerFactory = exports.IPDFLinkService = exports.IPDFHistory = exports.IPDFAnnotationLayerFactory = exports.IL10n = void 0;
|
28
28
|
|
29
29
|
class IPDFLinkService {
|
30
30
|
get pagesCount() {}
|
@@ -41,7 +41,9 @@ class IPDFLinkService {
|
|
41
41
|
|
42
42
|
set externalLinkEnabled(value) {}
|
43
43
|
|
44
|
-
|
44
|
+
async goToDestination(dest) {}
|
45
|
+
|
46
|
+
goToPage(val) {}
|
45
47
|
|
46
48
|
getDestinationHash(dest) {}
|
47
49
|
|
@@ -55,6 +57,8 @@ class IPDFLinkService {
|
|
55
57
|
|
56
58
|
isPageVisible(pageNumber) {}
|
57
59
|
|
60
|
+
isPageCached(pageNumber) {}
|
61
|
+
|
58
62
|
}
|
59
63
|
|
60
64
|
exports.IPDFLinkService = IPDFLinkService;
|
@@ -74,6 +78,8 @@ class IPDFHistory {
|
|
74
78
|
pageNumber
|
75
79
|
}) {}
|
76
80
|
|
81
|
+
pushPage(pageNumber) {}
|
82
|
+
|
77
83
|
pushCurrentPosition() {}
|
78
84
|
|
79
85
|
back() {}
|
@@ -105,7 +111,7 @@ class IPDFTextLayerFactory {
|
|
105
111
|
exports.IPDFTextLayerFactory = IPDFTextLayerFactory;
|
106
112
|
|
107
113
|
class IPDFAnnotationLayerFactory {
|
108
|
-
createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = "", renderInteractiveForms = true, l10n = undefined) {}
|
114
|
+
createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = "", renderInteractiveForms = true, l10n = undefined, enableScripting = false, hasJSActionsPromise = null, mouseState = null) {}
|
109
115
|
|
110
116
|
}
|
111
117
|
|
@@ -169,9 +169,7 @@ class PDFAttachmentViewer extends _base_tree_viewer.BaseTreeViewer {
|
|
169
169
|
attachmentsCount++;
|
170
170
|
}
|
171
171
|
|
172
|
-
this.
|
173
|
-
|
174
|
-
this._dispatchEvent(attachmentsCount);
|
172
|
+
this._finishRendering(fragment, attachmentsCount);
|
175
173
|
}
|
176
174
|
|
177
175
|
_appendAttachment({
|
@@ -28,6 +28,8 @@ exports.PDFCursorTools = exports.CursorTool = void 0;
|
|
28
28
|
|
29
29
|
var _grab_to_pan = require("./grab_to_pan.js");
|
30
30
|
|
31
|
+
var _ui_utils = require("./ui_utils.js");
|
32
|
+
|
31
33
|
const CursorTool = {
|
32
34
|
SELECT: 0,
|
33
35
|
HAND: 1,
|
@@ -116,20 +118,25 @@ class PDFCursorTools {
|
|
116
118
|
});
|
117
119
|
|
118
120
|
this.eventBus._on("presentationmodechanged", evt => {
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
let previouslyActive;
|
121
|
+
switch (evt.state) {
|
122
|
+
case _ui_utils.PresentationModeState.CHANGING:
|
123
|
+
break;
|
124
124
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
125
|
+
case _ui_utils.PresentationModeState.FULLSCREEN:
|
126
|
+
{
|
127
|
+
const previouslyActive = this.active;
|
128
|
+
this.switchTool(CursorTool.SELECT);
|
129
|
+
this.activeBeforePresentationMode = previouslyActive;
|
130
|
+
break;
|
131
|
+
}
|
132
|
+
|
133
|
+
case _ui_utils.PresentationModeState.NORMAL:
|
134
|
+
{
|
135
|
+
const previouslyActive = this.activeBeforePresentationMode;
|
136
|
+
this.activeBeforePresentationMode = null;
|
137
|
+
this.switchTool(previouslyActive);
|
138
|
+
break;
|
139
|
+
}
|
133
140
|
}
|
134
141
|
});
|
135
142
|
}
|
@@ -79,7 +79,7 @@ class PDFDocumentProperties {
|
|
79
79
|
});
|
80
80
|
}
|
81
81
|
|
82
|
-
open() {
|
82
|
+
async open() {
|
83
83
|
const freezeFieldData = data => {
|
84
84
|
Object.defineProperty(this, "fieldData", {
|
85
85
|
value: Object.freeze(data),
|
@@ -89,64 +89,58 @@ class PDFDocumentProperties {
|
|
89
89
|
});
|
90
90
|
};
|
91
91
|
|
92
|
-
Promise.all([this.overlayManager.open(this.overlayName), this._dataAvailableCapability.promise])
|
93
|
-
|
94
|
-
|
92
|
+
await Promise.all([this.overlayManager.open(this.overlayName), this._dataAvailableCapability.promise]);
|
93
|
+
const currentPageNumber = this._currentPageNumber;
|
94
|
+
const pagesRotation = this._pagesRotation;
|
95
95
|
|
96
|
-
|
97
|
-
|
96
|
+
if (this.fieldData && currentPageNumber === this.fieldData._currentPageNumber && pagesRotation === this.fieldData._pagesRotation) {
|
97
|
+
this._updateUI();
|
98
98
|
|
99
|
-
|
100
|
-
|
99
|
+
return;
|
100
|
+
}
|
101
101
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
});
|
129
|
-
|
130
|
-
this._updateUI();
|
131
|
-
|
132
|
-
return this.pdfDocument.getDownloadInfo();
|
133
|
-
}).then(({
|
134
|
-
length
|
135
|
-
}) => {
|
136
|
-
this.maybeFileSize = length;
|
137
|
-
return this._parseFileSize(length);
|
138
|
-
}).then(fileSize => {
|
139
|
-
if (fileSize === this.fieldData.fileSize) {
|
140
|
-
return;
|
141
|
-
}
|
102
|
+
const {
|
103
|
+
info,
|
104
|
+
contentDispositionFilename,
|
105
|
+
contentLength
|
106
|
+
} = await this.pdfDocument.getMetadata();
|
107
|
+
const [fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(this.url), this._parseFileSize(contentLength), this._parseDate(info.CreationDate), this._parseDate(info.ModDate), this.pdfDocument.getPage(currentPageNumber).then(pdfPage => {
|
108
|
+
return this._parsePageSize((0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation);
|
109
|
+
}), this._parseLinearization(info.IsLinearized)]);
|
110
|
+
freezeFieldData({
|
111
|
+
fileName,
|
112
|
+
fileSize,
|
113
|
+
title: info.Title,
|
114
|
+
author: info.Author,
|
115
|
+
subject: info.Subject,
|
116
|
+
keywords: info.Keywords,
|
117
|
+
creationDate,
|
118
|
+
modificationDate,
|
119
|
+
creator: info.Creator,
|
120
|
+
producer: info.Producer,
|
121
|
+
version: info.PDFFormatVersion,
|
122
|
+
pageCount: this.pdfDocument.numPages,
|
123
|
+
pageSize,
|
124
|
+
linearized: isLinearized,
|
125
|
+
_currentPageNumber: currentPageNumber,
|
126
|
+
_pagesRotation: pagesRotation
|
127
|
+
});
|
142
128
|
|
143
|
-
|
144
|
-
data.fileSize = fileSize;
|
145
|
-
freezeFieldData(data);
|
129
|
+
this._updateUI();
|
146
130
|
|
147
|
-
|
148
|
-
|
149
|
-
});
|
131
|
+
const {
|
132
|
+
length
|
133
|
+
} = await this.pdfDocument.getDownloadInfo();
|
134
|
+
|
135
|
+
if (contentLength === length) {
|
136
|
+
return;
|
137
|
+
}
|
138
|
+
|
139
|
+
const data = Object.assign(Object.create(null), this.fieldData);
|
140
|
+
data.fileSize = await this._parseFileSize(length);
|
141
|
+
freezeFieldData(data);
|
142
|
+
|
143
|
+
this._updateUI();
|
150
144
|
}
|
151
145
|
|
152
146
|
close() {
|
@@ -170,16 +164,9 @@ class PDFDocumentProperties {
|
|
170
164
|
this._dataAvailableCapability.resolve();
|
171
165
|
}
|
172
166
|
|
173
|
-
setFileSize(fileSize) {
|
174
|
-
if (Number.isInteger(fileSize) && fileSize > 0) {
|
175
|
-
this.maybeFileSize = fileSize;
|
176
|
-
}
|
177
|
-
}
|
178
|
-
|
179
167
|
_reset() {
|
180
168
|
this.pdfDocument = null;
|
181
169
|
this.url = null;
|
182
|
-
this.maybeFileSize = 0;
|
183
170
|
delete this.fieldData;
|
184
171
|
this._dataAvailableCapability = (0, _pdf.createPromiseCapability)();
|
185
172
|
this._currentPageNumber = 1;
|
package/lib/web/pdf_find_bar.js
CHANGED
@@ -104,7 +104,6 @@ class PDFFindBar {
|
|
104
104
|
}
|
105
105
|
|
106
106
|
updateUIState(state, previous, matchesCount) {
|
107
|
-
let notFound = false;
|
108
107
|
let findMsg = "";
|
109
108
|
let status = "";
|
110
109
|
|
@@ -118,7 +117,7 @@ class PDFFindBar {
|
|
118
117
|
|
119
118
|
case _pdf_find_controller.FindState.NOT_FOUND:
|
120
119
|
findMsg = this.l10n.get("find_not_found", null, "Phrase not found");
|
121
|
-
|
120
|
+
status = "notFound";
|
122
121
|
break;
|
123
122
|
|
124
123
|
case _pdf_find_controller.FindState.WRAPPED:
|
@@ -131,7 +130,6 @@ class PDFFindBar {
|
|
131
130
|
break;
|
132
131
|
}
|
133
132
|
|
134
|
-
this.findField.classList.toggle("notFound", notFound);
|
135
133
|
this.findField.setAttribute("data-status", status);
|
136
134
|
Promise.resolve(findMsg).then(msg => {
|
137
135
|
this.findMsg.textContent = msg;
|