@progress/kendo-pdfviewer-common 0.1.3 → 0.2.0

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/dist/es/utils.js CHANGED
@@ -4,6 +4,7 @@ import { getDocument, renderTextLayer } from 'pdfjs-dist';
4
4
  * @hidden
5
5
  */
6
6
  export const DEFAULT_ZOOM_LEVEL = 1.25;
7
+ const scale = 3 * window.devicePixelRatio;
7
8
  const parsePdfFromBase64String = (base64String) => {
8
9
  return atob(base64String.replace(/^(data:application\/pdf;base64,)/gi, ''));
9
10
  };
@@ -110,13 +111,13 @@ export const reloadDocument = (params) => {
110
111
  */
111
112
  export const print = (pages, done, error) => {
112
113
  const dom = document.createElement('div');
113
- let dones = pages.map(() => false);
114
+ const dones = pages.map(() => false);
114
115
  pages.forEach((page, index) => {
115
116
  const viewport = renderCanvas(page, (el) => {
116
117
  dom.appendChild(el);
117
118
  dones[index] = true;
118
119
  if (dones.every(Boolean)) {
119
- openPrintDialog(dom, viewport.width, viewport.height, done, error);
120
+ openPrintDialog(dom, Math.floor(viewport.width / scale), Math.floor(viewport.height / scale), done, error);
120
121
  }
121
122
  }, error);
122
123
  });
@@ -132,6 +133,7 @@ const openPrintDialog = (dom, width, height, done, onError) => {
132
133
  return;
133
134
  }
134
135
  if (printDialog) {
136
+ printDialog.document.body.style.margin = '0';
135
137
  printDialog.document.body.appendChild(dom);
136
138
  printDialog.focus();
137
139
  setTimeout(() => {
@@ -146,25 +148,26 @@ const openPrintDialog = (dom, width, height, done, onError) => {
146
148
  }
147
149
  };
148
150
  const renderCanvas = (page, done, error) => {
149
- const viewport = page.getViewport({ scale: DEFAULT_ZOOM_LEVEL });
150
- const styles = {};
151
+ const viewport = page.getViewport({ scale });
152
+ const styles = {
153
+ width: Math.floor(viewport.width / scale) + 'pt',
154
+ height: Math.floor(viewport.height / scale) + 'pt'
155
+ };
151
156
  const pageElement = createElement('div', '', styles);
152
157
  const canvas = createElement('canvas', '', {
153
158
  width: '100%',
154
159
  height: '100%'
155
160
  });
156
- const canvasContext = canvas.getContext('2d');
157
161
  canvas.height = viewport.height;
158
162
  canvas.width = viewport.width;
163
+ const canvasContext = canvas.getContext('2d');
159
164
  pageElement.appendChild(canvas);
160
165
  page.render({ canvasContext, viewport })
161
166
  .promise.then(() => {
162
- const printContent = new Image();
167
+ const printContent = new Image(Math.floor((viewport.width / scale)), Math.floor((viewport.height / scale)));
163
168
  printContent.src = canvas.toDataURL();
164
169
  pageElement.removeChild(canvas);
165
170
  pageElement.appendChild(printContent);
166
- printContent.width = canvas.width;
167
- printContent.height = canvas.height;
168
171
  const onload = () => {
169
172
  printContent.removeEventListener('load', onload);
170
173
  done(pageElement);
@@ -183,19 +186,19 @@ const createElement = function (name, className, styles) {
183
186
  return element;
184
187
  };
185
188
  const renderPage = (page, zoom, error) => {
186
- const viewport = page.getViewport({ scale: zoom });
189
+ const viewport = page.getViewport({ scale });
187
190
  const styles = {
188
- width: viewport.width + 'px',
189
- height: viewport.height + 'px'
191
+ width: (Math.floor(viewport.width / scale) * zoom) + 'pt',
192
+ height: (Math.floor(viewport.height / scale) * zoom) + 'pt'
190
193
  };
191
194
  const pageElement = createElement('div', 'k-page', styles);
192
195
  const canvas = createElement('canvas', '', {
193
196
  width: '100%',
194
197
  height: '100%'
195
198
  });
196
- const canvasContext = canvas.getContext('2d');
197
199
  canvas.height = viewport.height;
198
200
  canvas.width = viewport.width;
201
+ const canvasContext = canvas.getContext('2d');
199
202
  pageElement.appendChild(canvas);
200
203
  page.render({ canvasContext, viewport })
201
204
  .promise.then(() => {
@@ -4,6 +4,7 @@ import { getDocument, renderTextLayer } from 'pdfjs-dist';
4
4
  * @hidden
5
5
  */
6
6
  export const DEFAULT_ZOOM_LEVEL = 1.25;
7
+ const scale = 3 * window.devicePixelRatio;
7
8
  const parsePdfFromBase64String = (base64String) => {
8
9
  return atob(base64String.replace(/^(data:application\/pdf;base64,)/gi, ''));
9
10
  };
@@ -110,13 +111,13 @@ export const reloadDocument = (params) => {
110
111
  */
111
112
  export const print = (pages, done, error) => {
112
113
  const dom = document.createElement('div');
113
- let dones = pages.map(() => false);
114
+ const dones = pages.map(() => false);
114
115
  pages.forEach((page, index) => {
115
116
  const viewport = renderCanvas(page, (el) => {
116
117
  dom.appendChild(el);
117
118
  dones[index] = true;
118
119
  if (dones.every(Boolean)) {
119
- openPrintDialog(dom, viewport.width, viewport.height, done, error);
120
+ openPrintDialog(dom, Math.floor(viewport.width / scale), Math.floor(viewport.height / scale), done, error);
120
121
  }
121
122
  }, error);
122
123
  });
@@ -132,6 +133,7 @@ const openPrintDialog = (dom, width, height, done, onError) => {
132
133
  return;
133
134
  }
134
135
  if (printDialog) {
136
+ printDialog.document.body.style.margin = '0';
135
137
  printDialog.document.body.appendChild(dom);
136
138
  printDialog.focus();
137
139
  setTimeout(() => {
@@ -146,25 +148,26 @@ const openPrintDialog = (dom, width, height, done, onError) => {
146
148
  }
147
149
  };
148
150
  const renderCanvas = (page, done, error) => {
149
- const viewport = page.getViewport({ scale: DEFAULT_ZOOM_LEVEL });
150
- const styles = {};
151
+ const viewport = page.getViewport({ scale });
152
+ const styles = {
153
+ width: Math.floor(viewport.width / scale) + 'pt',
154
+ height: Math.floor(viewport.height / scale) + 'pt'
155
+ };
151
156
  const pageElement = createElement('div', '', styles);
152
157
  const canvas = createElement('canvas', '', {
153
158
  width: '100%',
154
159
  height: '100%'
155
160
  });
156
- const canvasContext = canvas.getContext('2d');
157
161
  canvas.height = viewport.height;
158
162
  canvas.width = viewport.width;
163
+ const canvasContext = canvas.getContext('2d');
159
164
  pageElement.appendChild(canvas);
160
165
  page.render({ canvasContext, viewport })
161
166
  .promise.then(() => {
162
- const printContent = new Image();
167
+ const printContent = new Image(Math.floor((viewport.width / scale)), Math.floor((viewport.height / scale)));
163
168
  printContent.src = canvas.toDataURL();
164
169
  pageElement.removeChild(canvas);
165
170
  pageElement.appendChild(printContent);
166
- printContent.width = canvas.width;
167
- printContent.height = canvas.height;
168
171
  const onload = () => {
169
172
  printContent.removeEventListener('load', onload);
170
173
  done(pageElement);
@@ -183,19 +186,19 @@ const createElement = function (name, className, styles) {
183
186
  return element;
184
187
  };
185
188
  const renderPage = (page, zoom, error) => {
186
- const viewport = page.getViewport({ scale: zoom });
189
+ const viewport = page.getViewport({ scale });
187
190
  const styles = {
188
- width: viewport.width + 'px',
189
- height: viewport.height + 'px'
191
+ width: (Math.floor(viewport.width / scale) * zoom) + 'pt',
192
+ height: (Math.floor(viewport.height / scale) * zoom) + 'pt'
190
193
  };
191
194
  const pageElement = createElement('div', 'k-page', styles);
192
195
  const canvas = createElement('canvas', '', {
193
196
  width: '100%',
194
197
  height: '100%'
195
198
  });
196
- const canvasContext = canvas.getContext('2d');
197
199
  canvas.height = viewport.height;
198
200
  canvas.width = viewport.width;
201
+ const canvasContext = canvas.getContext('2d');
199
202
  pageElement.appendChild(canvas);
200
203
  page.render({ canvasContext, viewport })
201
204
  .promise.then(() => {
package/dist/npm/utils.js CHANGED
@@ -6,6 +6,7 @@ const pdfjs_dist_1 = require("pdfjs-dist");
6
6
  * @hidden
7
7
  */
8
8
  exports.DEFAULT_ZOOM_LEVEL = 1.25;
9
+ const scale = 3 * window.devicePixelRatio;
9
10
  const parsePdfFromBase64String = (base64String) => {
10
11
  return atob(base64String.replace(/^(data:application\/pdf;base64,)/gi, ''));
11
12
  };
@@ -112,13 +113,13 @@ exports.reloadDocument = (params) => {
112
113
  */
113
114
  exports.print = (pages, done, error) => {
114
115
  const dom = document.createElement('div');
115
- let dones = pages.map(() => false);
116
+ const dones = pages.map(() => false);
116
117
  pages.forEach((page, index) => {
117
118
  const viewport = renderCanvas(page, (el) => {
118
119
  dom.appendChild(el);
119
120
  dones[index] = true;
120
121
  if (dones.every(Boolean)) {
121
- openPrintDialog(dom, viewport.width, viewport.height, done, error);
122
+ openPrintDialog(dom, Math.floor(viewport.width / scale), Math.floor(viewport.height / scale), done, error);
122
123
  }
123
124
  }, error);
124
125
  });
@@ -134,6 +135,7 @@ const openPrintDialog = (dom, width, height, done, onError) => {
134
135
  return;
135
136
  }
136
137
  if (printDialog) {
138
+ printDialog.document.body.style.margin = '0';
137
139
  printDialog.document.body.appendChild(dom);
138
140
  printDialog.focus();
139
141
  setTimeout(() => {
@@ -148,25 +150,26 @@ const openPrintDialog = (dom, width, height, done, onError) => {
148
150
  }
149
151
  };
150
152
  const renderCanvas = (page, done, error) => {
151
- const viewport = page.getViewport({ scale: exports.DEFAULT_ZOOM_LEVEL });
152
- const styles = {};
153
+ const viewport = page.getViewport({ scale });
154
+ const styles = {
155
+ width: Math.floor(viewport.width / scale) + 'pt',
156
+ height: Math.floor(viewport.height / scale) + 'pt'
157
+ };
153
158
  const pageElement = createElement('div', '', styles);
154
159
  const canvas = createElement('canvas', '', {
155
160
  width: '100%',
156
161
  height: '100%'
157
162
  });
158
- const canvasContext = canvas.getContext('2d');
159
163
  canvas.height = viewport.height;
160
164
  canvas.width = viewport.width;
165
+ const canvasContext = canvas.getContext('2d');
161
166
  pageElement.appendChild(canvas);
162
167
  page.render({ canvasContext, viewport })
163
168
  .promise.then(() => {
164
- const printContent = new Image();
169
+ const printContent = new Image(Math.floor((viewport.width / scale)), Math.floor((viewport.height / scale)));
165
170
  printContent.src = canvas.toDataURL();
166
171
  pageElement.removeChild(canvas);
167
172
  pageElement.appendChild(printContent);
168
- printContent.width = canvas.width;
169
- printContent.height = canvas.height;
170
173
  const onload = () => {
171
174
  printContent.removeEventListener('load', onload);
172
175
  done(pageElement);
@@ -185,19 +188,19 @@ const createElement = function (name, className, styles) {
185
188
  return element;
186
189
  };
187
190
  const renderPage = (page, zoom, error) => {
188
- const viewport = page.getViewport({ scale: zoom });
191
+ const viewport = page.getViewport({ scale });
189
192
  const styles = {
190
- width: viewport.width + 'px',
191
- height: viewport.height + 'px'
193
+ width: (Math.floor(viewport.width / scale) * zoom) + 'pt',
194
+ height: (Math.floor(viewport.height / scale) * zoom) + 'pt'
192
195
  };
193
196
  const pageElement = createElement('div', 'k-page', styles);
194
197
  const canvas = createElement('canvas', '', {
195
198
  width: '100%',
196
199
  height: '100%'
197
200
  });
198
- const canvasContext = canvas.getContext('2d');
199
201
  canvas.height = viewport.height;
200
202
  canvas.width = viewport.width;
203
+ const canvasContext = canvas.getContext('2d');
201
204
  pageElement.appendChild(canvas);
202
205
  page.render({ canvasContext, viewport })
203
206
  .promise.then(() => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@progress/kendo-pdfviewer-common",
3
3
  "description": "Kendo UI TypeScript package exporting functions for PDFViewer component",
4
- "version": "0.1.3",
4
+ "version": "0.2.0",
5
5
  "keywords": [
6
6
  "Kendo UI"
7
7
  ],