pdfjs-dist 2.5.207 → 2.6.347

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.

Files changed (133) hide show
  1. package/bower.json +1 -1
  2. package/build/pdf.js +867 -216
  3. package/build/pdf.js.map +1 -1
  4. package/build/pdf.min.js +1 -1
  5. package/build/pdf.worker.js +10214 -8547
  6. package/build/pdf.worker.js.map +1 -1
  7. package/build/pdf.worker.min.js +1 -1
  8. package/es5/build/pdf.js +2023 -1046
  9. package/es5/build/pdf.js.map +1 -1
  10. package/es5/build/pdf.min.js +22 -0
  11. package/es5/build/pdf.worker.js +11136 -8144
  12. package/es5/build/pdf.worker.js.map +1 -1
  13. package/es5/build/pdf.worker.min.js +22 -0
  14. package/es5/image_decoders/pdf.image_decoders.js +12529 -0
  15. package/es5/image_decoders/pdf.image_decoders.js.map +1 -0
  16. package/es5/image_decoders/pdf.image_decoders.min.js +22 -0
  17. package/es5/web/images/shadow.png +0 -0
  18. package/es5/web/pdf_viewer.css +8 -5
  19. package/es5/web/pdf_viewer.js +195 -51
  20. package/es5/web/pdf_viewer.js.map +1 -1
  21. package/image_decoders/pdf.image_decoders.js +24 -16
  22. package/image_decoders/pdf.image_decoders.js.map +1 -1
  23. package/image_decoders/pdf.image_decoders.min.js +1 -1
  24. package/lib/core/annotation.js +479 -43
  25. package/lib/core/cff_parser.js +643 -615
  26. package/lib/core/chunked_stream.js +64 -50
  27. package/lib/core/colorspace.js +126 -104
  28. package/lib/core/crypto.js +37 -0
  29. package/lib/core/document.js +128 -75
  30. package/lib/core/evaluator.js +3015 -2754
  31. package/lib/core/fonts.js +47 -46
  32. package/lib/core/function.js +79 -6
  33. package/lib/core/image.js +364 -357
  34. package/lib/core/image_utils.js +109 -8
  35. package/lib/core/jpg.js +8 -3
  36. package/lib/core/obj.js +255 -34
  37. package/lib/core/operator_list.js +17 -15
  38. package/lib/core/parser.js +40 -3
  39. package/lib/core/pattern.js +24 -11
  40. package/lib/core/primitives.js +112 -53
  41. package/lib/core/type1_parser.js +2 -0
  42. package/lib/core/worker.js +102 -37
  43. package/lib/core/writer.js +242 -0
  44. package/lib/display/annotation_layer.js +51 -10
  45. package/lib/display/annotation_storage.js +89 -0
  46. package/lib/display/api.js +140 -54
  47. package/lib/display/canvas.js +215 -46
  48. package/lib/display/display_utils.js +55 -18
  49. package/lib/display/fetch_stream.js +6 -0
  50. package/lib/display/font_loader.js +26 -15
  51. package/lib/display/metadata.js +1 -7
  52. package/lib/display/network.js +0 -14
  53. package/lib/display/node_utils.js +87 -0
  54. package/lib/display/optional_content_config.js +184 -0
  55. package/lib/display/svg.js +1 -1
  56. package/lib/display/text_layer.js +4 -1
  57. package/lib/pdf.js +2 -2
  58. package/lib/pdf.worker.js +2 -2
  59. package/lib/shared/is_node.js +1 -1
  60. package/lib/shared/util.js +13 -10
  61. package/lib/test/unit/annotation_spec.js +520 -50
  62. package/lib/test/unit/annotation_storage_spec.js +83 -0
  63. package/lib/test/unit/api_spec.js +16 -6
  64. package/lib/test/unit/cmap_spec.js +4 -4
  65. package/lib/test/unit/colorspace_spec.js +216 -24
  66. package/lib/test/unit/crypto_spec.js +51 -4
  67. package/lib/test/unit/custom_spec.js +129 -1
  68. package/lib/test/unit/document_spec.js +112 -1
  69. package/lib/test/unit/evaluator_spec.js +29 -10
  70. package/lib/test/unit/jasmine-boot.js +1 -1
  71. package/lib/test/unit/metadata_spec.js +3 -3
  72. package/lib/test/unit/primitives_spec.js +242 -63
  73. package/lib/test/unit/test_utils.js +42 -89
  74. package/lib/test/unit/testreporter.js +17 -6
  75. package/lib/test/unit/util_spec.js +13 -12
  76. package/lib/test/unit/writer_spec.js +84 -0
  77. package/lib/web/annotation_layer_builder.js +13 -9
  78. package/lib/web/app.js +231 -26
  79. package/lib/web/app_options.js +1 -6
  80. package/lib/web/base_tree_viewer.js +100 -0
  81. package/lib/web/base_viewer.js +53 -4
  82. package/lib/web/download_manager.js +3 -10
  83. package/lib/web/firefox_print_service.js +32 -12
  84. package/lib/web/firefoxcom.js +20 -6
  85. package/lib/web/interfaces.js +1 -1
  86. package/lib/web/pdf_attachment_viewer.js +80 -38
  87. package/lib/web/pdf_find_controller.js +2 -1
  88. package/lib/web/pdf_layer_viewer.js +208 -0
  89. package/lib/web/pdf_outline_viewer.js +24 -57
  90. package/lib/web/pdf_page_view.js +29 -6
  91. package/lib/web/pdf_print_service.js +13 -11
  92. package/lib/web/pdf_sidebar.js +46 -25
  93. package/lib/web/pdf_thumbnail_view.js +16 -3
  94. package/lib/web/pdf_thumbnail_viewer.js +17 -1
  95. package/lib/web/pdf_viewer.component.js +2 -2
  96. package/lib/web/preferences.js +1 -1
  97. package/lib/web/toolbar.js +1 -1
  98. package/lib/web/ui_utils.js +7 -1
  99. package/package.json +3 -1
  100. package/types/display/annotation_layer.d.ts +61 -0
  101. package/types/display/annotation_storage.d.ts +36 -0
  102. package/types/display/api.d.ts +1107 -0
  103. package/types/display/api_compatibility.d.ts +1 -0
  104. package/types/display/canvas.d.ts +4 -0
  105. package/types/display/content_disposition.d.ts +7 -0
  106. package/types/display/display_utils.d.ts +243 -0
  107. package/types/display/fetch_stream.d.ts +67 -0
  108. package/types/display/font_loader.d.ts +19 -0
  109. package/types/display/metadata.d.ts +9 -0
  110. package/types/display/network.d.ts +80 -0
  111. package/types/display/network_utils.d.ts +14 -0
  112. package/types/display/node_stream.d.ts +72 -0
  113. package/types/display/node_utils.d.ts +6 -0
  114. package/types/display/optional_content_config.d.ts +12 -0
  115. package/types/display/pattern_helper.d.ts +5 -0
  116. package/types/display/svg.d.ts +2 -0
  117. package/types/display/text_layer.d.ts +83 -0
  118. package/types/display/transport_stream.d.ts +57 -0
  119. package/types/display/webgl.d.ts +20 -0
  120. package/types/display/worker_options.d.ts +27 -0
  121. package/types/display/xml_parser.d.ts +35 -0
  122. package/types/pdf.d.ts +33 -0
  123. package/types/shared/compatibility.d.ts +1 -0
  124. package/types/shared/is_node.d.ts +1 -0
  125. package/types/shared/message_handler.d.ts +62 -0
  126. package/types/shared/util.d.ts +421 -0
  127. package/web/images/shadow.png +0 -0
  128. package/web/pdf_viewer.css +8 -5
  129. package/web/pdf_viewer.js +109 -33
  130. package/web/pdf_viewer.js.map +1 -1
  131. package/webpack.js +1 -9
  132. package/es5/web/images/texture.png +0 -0
  133. package/web/images/texture.png +0 -0
@@ -79,8 +79,10 @@ class PDFThumbnailView {
79
79
  container,
80
80
  id,
81
81
  defaultViewport,
82
+ optionalContentConfigPromise,
82
83
  linkService,
83
84
  renderingQueue,
85
+ checkSetImageDisabled,
84
86
  disableCanvasToImageConversion = false,
85
87
  l10n = _ui_utils.NullL10n
86
88
  }) {
@@ -91,11 +93,17 @@ class PDFThumbnailView {
91
93
  this.rotation = 0;
92
94
  this.viewport = defaultViewport;
93
95
  this.pdfPageRotate = defaultViewport.rotation;
96
+ this._optionalContentConfigPromise = optionalContentConfigPromise || null;
94
97
  this.linkService = linkService;
95
98
  this.renderingQueue = renderingQueue;
96
99
  this.renderTask = null;
97
100
  this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;
98
101
  this.resume = null;
102
+
103
+ this._checkSetImageDisabled = checkSetImageDisabled || function () {
104
+ return false;
105
+ };
106
+
99
107
  this.disableCanvasToImageConversion = disableCanvasToImageConversion;
100
108
  this.pageWidth = this.viewport.width;
101
109
  this.pageHeight = this.viewport.height;
@@ -320,7 +328,8 @@ class PDFThumbnailView {
320
328
 
321
329
  const renderContext = {
322
330
  canvasContext: ctx,
323
- viewport: drawViewport
331
+ viewport: drawViewport,
332
+ optionalContentConfigPromise: this._optionalContentConfigPromise
324
333
  };
325
334
  const renderTask = this.renderTask = pdfPage.render(renderContext);
326
335
  renderTask.onContinue = renderContinueCallback;
@@ -333,6 +342,10 @@ class PDFThumbnailView {
333
342
  }
334
343
 
335
344
  setImage(pageView) {
345
+ if (this._checkSetImageDisabled()) {
346
+ return;
347
+ }
348
+
336
349
  if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) {
337
350
  return;
338
351
  }
@@ -386,13 +399,13 @@ class PDFThumbnailView {
386
399
 
387
400
  get _thumbPageTitle() {
388
401
  return this.l10n.get("thumb_page_title", {
389
- page: this.pageLabel !== null ? this.pageLabel : this.id
402
+ page: this.pageLabel ?? this.id
390
403
  }, "Page {{page}}");
391
404
  }
392
405
 
393
406
  get _thumbPageCanvas() {
394
407
  return this.l10n.get("thumb_page_canvas", {
395
- page: this.pageLabel !== null ? this.pageLabel : this.id
408
+ page: this.pageLabel ?? this.id
396
409
  }, "Thumbnail of Page {{page}}");
397
410
  }
398
411
 
@@ -36,6 +36,7 @@ const THUMBNAIL_SELECTED_CLASS = "selected";
36
36
  class PDFThumbnailViewer {
37
37
  constructor({
38
38
  container,
39
+ eventBus,
39
40
  linkService,
40
41
  renderingQueue,
41
42
  l10n = _ui_utils.NullL10n
@@ -47,6 +48,10 @@ class PDFThumbnailViewer {
47
48
  this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdated.bind(this));
48
49
 
49
50
  this._resetView();
51
+
52
+ eventBus._on("optionalcontentconfigchanged", () => {
53
+ this._setImageDisabled = true;
54
+ });
50
55
  }
51
56
 
52
57
  _scrollUpdated() {
@@ -144,7 +149,9 @@ class PDFThumbnailViewer {
144
149
  this._currentPageNumber = 1;
145
150
  this._pageLabels = null;
146
151
  this._pagesRotation = 0;
152
+ this._optionalContentConfigPromise = null;
147
153
  this._pagesRequests = new WeakMap();
154
+ this._setImageDisabled = false;
148
155
  this.container.textContent = "";
149
156
  }
150
157
 
@@ -161,19 +168,28 @@ class PDFThumbnailViewer {
161
168
  return;
162
169
  }
163
170
 
164
- pdfDocument.getPage(1).then(firstPdfPage => {
171
+ const firstPagePromise = pdfDocument.getPage(1);
172
+ const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig();
173
+ firstPagePromise.then(firstPdfPage => {
174
+ this._optionalContentConfigPromise = optionalContentConfigPromise;
165
175
  const pagesCount = pdfDocument.numPages;
166
176
  const viewport = firstPdfPage.getViewport({
167
177
  scale: 1
168
178
  });
169
179
 
180
+ const checkSetImageDisabled = () => {
181
+ return this._setImageDisabled;
182
+ };
183
+
170
184
  for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) {
171
185
  const thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({
172
186
  container: this.container,
173
187
  id: pageNum,
174
188
  defaultViewport: viewport.clone(),
189
+ optionalContentConfigPromise,
175
190
  linkService: this.linkService,
176
191
  renderingQueue: this.renderingQueue,
192
+ checkSetImageDisabled,
177
193
  disableCanvasToImageConversion: false,
178
194
  l10n: this.l10n
179
195
  });
@@ -143,5 +143,5 @@ var _pdf_single_page_viewer = require("./pdf_single_page_viewer.js");
143
143
 
144
144
  var _pdf_viewer = require("./pdf_viewer.js");
145
145
 
146
- const pdfjsVersion = '2.5.207';
147
- const pdfjsBuild = '0974d605';
146
+ const pdfjsVersion = '2.6.347';
147
+ const pdfjsBuild = '3be9c65f';
@@ -44,7 +44,7 @@ function getDefaultPreferences() {
44
44
  "ignoreDestinationZoom": false,
45
45
  "pdfBugEnabled": false,
46
46
  "renderer": "canvas",
47
- "renderInteractiveForms": false,
47
+ "renderInteractiveForms": true,
48
48
  "sidebarViewOnLoad": -1,
49
49
  "scrollModeOnLoad": -1,
50
50
  "spreadModeOnLoad": -1,
@@ -268,7 +268,7 @@ class Toolbar {
268
268
  }
269
269
 
270
270
  const overflow = SCALE_SELECT_WIDTH - SCALE_SELECT_CONTAINER_WIDTH;
271
- maxWidth += 1.5 * overflow;
271
+ maxWidth += 2 * overflow;
272
272
 
273
273
  if (maxWidth > SCALE_SELECT_CONTAINER_WIDTH) {
274
274
  items.scaleSelect.style.width = `${maxWidth + overflow}px`;
@@ -41,6 +41,7 @@ exports.getOutputScale = getOutputScale;
41
41
  exports.scrollIntoView = scrollIntoView;
42
42
  exports.watchScroll = watchScroll;
43
43
  exports.binarySearchFirstItem = binarySearchFirstItem;
44
+ exports.normalizeWheelEventDirection = normalizeWheelEventDirection;
44
45
  exports.normalizeWheelEventDelta = normalizeWheelEventDelta;
45
46
  exports.waitOnEventOrTimeout = waitOnEventOrTimeout;
46
47
  exports.moveToEndOfArray = moveToEndOfArray;
@@ -478,7 +479,7 @@ function getPDFFileNameFromURL(url, defaultFilename = "document.pdf") {
478
479
  return suggestedFilename || defaultFilename;
479
480
  }
480
481
 
481
- function normalizeWheelEventDelta(evt) {
482
+ function normalizeWheelEventDirection(evt) {
482
483
  let delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY);
483
484
  const angle = Math.atan2(evt.deltaY, evt.deltaX);
484
485
 
@@ -486,6 +487,11 @@ function normalizeWheelEventDelta(evt) {
486
487
  delta = -delta;
487
488
  }
488
489
 
490
+ return delta;
491
+ }
492
+
493
+ function normalizeWheelEventDelta(evt) {
494
+ let delta = normalizeWheelEventDirection(evt);
489
495
  const MOUSE_DOM_DELTA_PIXEL_MODE = 0;
490
496
  const MOUSE_DOM_DELTA_LINE_MODE = 1;
491
497
  const MOUSE_PIXELS_PER_LINE = 30;
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "pdfjs-dist",
3
- "version": "2.5.207",
3
+ "version": "2.6.347",
4
4
  "main": "build/pdf.js",
5
+ "types": "types/pdf.d.ts",
5
6
  "description": "Generic build of Mozilla's PDF.js library.",
6
7
  "keywords": [
7
8
  "Mozilla",
@@ -12,6 +13,7 @@
12
13
  "bugs": "https://github.com/mozilla/pdf.js/issues",
13
14
  "license": "Apache-2.0",
14
15
  "browser": {
16
+ "canvas": false,
15
17
  "fs": false,
16
18
  "http": false,
17
19
  "https": false,
@@ -0,0 +1,61 @@
1
+ export type AnnotationElementParameters = {
2
+ data: Object;
3
+ layer: HTMLDivElement;
4
+ page: any;
5
+ viewport: any;
6
+ linkService: any;
7
+ downloadManager: any;
8
+ annotationStorage?: AnnotationStorage;
9
+ /**
10
+ * - Path for image resources, mainly
11
+ * for annotation icons. Include trailing slash.
12
+ */
13
+ imageResourcesPath?: string;
14
+ renderInteractiveForms: boolean;
15
+ svgFactory: Object;
16
+ };
17
+ export type AnnotationLayerParameters = {
18
+ viewport: any;
19
+ div: HTMLDivElement;
20
+ annotations: any[];
21
+ page: any;
22
+ linkService: any;
23
+ downloadManager: any;
24
+ /**
25
+ * - Path for image resources, mainly
26
+ * for annotation icons. Include trailing slash.
27
+ */
28
+ imageResourcesPath?: string;
29
+ renderInteractiveForms: boolean;
30
+ };
31
+ /**
32
+ * @typedef {Object} AnnotationLayerParameters
33
+ * @property {PageViewport} viewport
34
+ * @property {HTMLDivElement} div
35
+ * @property {Array} annotations
36
+ * @property {PDFPage} page
37
+ * @property {IPDFLinkService} linkService
38
+ * @property {DownloadManager} downloadManager
39
+ * @property {string} [imageResourcesPath] - Path for image resources, mainly
40
+ * for annotation icons. Include trailing slash.
41
+ * @property {boolean} renderInteractiveForms
42
+ */
43
+ export class AnnotationLayer {
44
+ /**
45
+ * Render a new annotation layer with all annotation elements.
46
+ *
47
+ * @public
48
+ * @param {AnnotationLayerParameters} parameters
49
+ * @memberof AnnotationLayer
50
+ */
51
+ public static render(parameters: AnnotationLayerParameters): void;
52
+ /**
53
+ * Update the annotation elements on existing annotation layer.
54
+ *
55
+ * @public
56
+ * @param {AnnotationLayerParameters} parameters
57
+ * @memberof AnnotationLayer
58
+ */
59
+ public static update(parameters: AnnotationLayerParameters): void;
60
+ }
61
+ import { AnnotationStorage } from "./annotation_storage.js";
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Key/value storage for annotation data in forms.
3
+ */
4
+ export class AnnotationStorage {
5
+ _storage: Map<any, any>;
6
+ _modified: boolean;
7
+ onSetModified: any;
8
+ onResetModified: any;
9
+ /**
10
+ * Get the value for a given key if it exists
11
+ * or store and return the default value
12
+ *
13
+ * @public
14
+ * @memberof AnnotationStorage
15
+ * @param {string} key
16
+ * @param {Object} defaultValue
17
+ * @returns {Object}
18
+ */
19
+ public getOrCreateValue(key: string, defaultValue: Object): Object;
20
+ /**
21
+ * Set the value for a given key
22
+ *
23
+ * @public
24
+ * @memberof AnnotationStorage
25
+ * @param {string} key
26
+ * @param {Object} value
27
+ */
28
+ public setValue(key: string, value: Object): void;
29
+ getAll(): any;
30
+ get size(): number;
31
+ /**
32
+ * @private
33
+ */
34
+ private _setModified;
35
+ resetModified(): void;
36
+ }