pdfmake 0.2.4 → 0.2.5

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdfmake",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "description": "Client/server side PDF printing in pure JavaScript",
5
5
  "main": "src/printer.js",
6
6
  "browser": "build/pdfmake.js",
@@ -6,10 +6,13 @@ if (typeof window !== 'undefined' && !window.Promise) {
6
6
  }
7
7
  require('core-js/es/object/values');
8
8
 
9
- var fetchUrl = function (url) {
9
+ var fetchUrl = function (url, headers) {
10
10
  return new Promise(function (resolve, reject) {
11
11
  var xhr = new XMLHttpRequest();
12
12
  xhr.open('GET', url, true);
13
+ for (var headerName in headers) {
14
+ xhr.setRequestHeader(headerName, headers[headerName]);
15
+ }
13
16
  xhr.responseType = 'arraybuffer';
14
17
 
15
18
  xhr.onreadystatechange = function () {
@@ -53,12 +56,12 @@ function URLBrowserResolver(fs) {
53
56
  this.resolving = {};
54
57
  }
55
58
 
56
- URLBrowserResolver.prototype.resolve = function (url) {
59
+ URLBrowserResolver.prototype.resolve = function (url, headers) {
57
60
  if (!this.resolving[url]) {
58
61
  var _this = this;
59
62
  this.resolving[url] = new Promise(function (resolve, reject) {
60
63
  if (url.toLowerCase().indexOf('https://') === 0 || url.toLowerCase().indexOf('http://') === 0) {
61
- fetchUrl(url).then(function (buffer) {
64
+ fetchUrl(url, headers).then(function (buffer) {
62
65
  _this.fs.writeFileSync(url, buffer);
63
66
  resolve();
64
67
  }, function (result) {
@@ -36,6 +36,14 @@ function canCreatePdf() {
36
36
  }
37
37
 
38
38
  Document.prototype._createDoc = function (options, cb) {
39
+ var getExtendedUrl = function (url) {
40
+ if (typeof url === 'object') {
41
+ return { url: url.url, headers: url.headers };
42
+ }
43
+
44
+ return { url: url, headers: {} };
45
+ };
46
+
39
47
  options = options || {};
40
48
  if (this.tableLayouts) {
41
49
  options.tableLayouts = this.tableLayouts;
@@ -58,16 +66,24 @@ Document.prototype._createDoc = function (options, cb) {
58
66
  for (var font in this.fonts) {
59
67
  if (this.fonts.hasOwnProperty(font)) {
60
68
  if (this.fonts[font].normal) {
61
- urlResolver.resolve(this.fonts[font].normal);
69
+ var url = getExtendedUrl(this.fonts[font].normal);
70
+ urlResolver.resolve(url.url, url.headers);
71
+ this.fonts[font].normal = url.url;
62
72
  }
63
73
  if (this.fonts[font].bold) {
64
- urlResolver.resolve(this.fonts[font].bold);
74
+ var url = getExtendedUrl(this.fonts[font].bold);
75
+ urlResolver.resolve(url.url, url.headers);
76
+ this.fonts[font].bold = url.url;
65
77
  }
66
78
  if (this.fonts[font].italics) {
67
- urlResolver.resolve(this.fonts[font].italics);
79
+ var url = getExtendedUrl(this.fonts[font].italics);
80
+ urlResolver.resolve(url.url, url.headers);
81
+ this.fonts[font].italics = url.url;
68
82
  }
69
83
  if (this.fonts[font].bolditalics) {
70
- urlResolver.resolve(this.fonts[font].bolditalics);
84
+ var url = getExtendedUrl(this.fonts[font].bolditalics);
85
+ urlResolver.resolve(url.url, url.headers);
86
+ this.fonts[font].bolditalics = url.url;
71
87
  }
72
88
  }
73
89
  }
@@ -75,7 +91,9 @@ Document.prototype._createDoc = function (options, cb) {
75
91
  if (this.docDefinition.images) {
76
92
  for (var image in this.docDefinition.images) {
77
93
  if (this.docDefinition.images.hasOwnProperty(image)) {
78
- urlResolver.resolve(this.docDefinition.images[image]);
94
+ var url = getExtendedUrl(this.docDefinition.images[image]);
95
+ urlResolver.resolve(url.url, url.headers);
96
+ this.docDefinition.images[image] = url.url;
79
97
  }
80
98
  }
81
99
  }