annotate Applications/StoneWebViewer/WebApplication/pdf-viewer.js @ 2165:8b21b1f43d0e default tip

cleanup todo
author Alain Mazy <am@orthanc.team>
date Thu, 03 Oct 2024 17:21:09 +0200
parents 952674a812c2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 /**
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 * Stone of Orthanc
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 * Department, University Hospital of Liege, Belgium
2124
16c01cc201e7 updated copyright, as Osimis is not active on Orthanc anymore
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2114
diff changeset
5 * Copyright (C) 2017-2023 Osimis S.A., Belgium
2114
c23eef785569 update year to 2024
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 2077
diff changeset
6 * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 *
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 * This program is free software: you can redistribute it and/or
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 * modify it under the terms of the GNU Affero General Public License
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 * as published by the Free Software Foundation, either version 3 of
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 * the License, or (at your option) any later version.
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 *
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful, but
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16 * Affero General Public License for more details.
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 *
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 * You should have received a copy of the GNU Affero General Public License
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 **/
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23
1657
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
24 /**
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
25 * This source file is an adaptation for Vue.js of the sample code
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
26 * "Previous/Next example" of PDF.js:
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
27 * https://mozilla.github.io/pdf.js/examples/
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
28 *
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
29 * =======================================================================
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
30 *
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
31 * Original license of the sample code:
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
32 *
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
33 * Copyright 2014 Mozilla Foundation
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
34 *
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
35 * Licensed under the Apache License, Version 2.0 (the "License");
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
36 * you may not use this file except in compliance with the License.
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
37 * You may obtain a copy of the License at
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
38 *
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
39 * http://www.apache.org/licenses/LICENSE-2.0
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
40 *
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
41 * Unless required by applicable law or agreed to in writing, software
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
42 * distributed under the License is distributed on an "AS IS" BASIS,
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
43 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
44 * See the License for the specific language governing permissions and
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
45 * limitations under the License.
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
46 **/
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
47
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 // Loaded via <script> tag, create shortcut to access PDF.js exports.
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 var pdfjsLib = window['pdfjs-dist/build/pdf'];
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
51
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
52 // The workerSrc property shall be specified.
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
53 pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.5.207/build/pdf.worker.min.js';
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
54
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 var ZOOM_FACTOR = 1.3;
1657
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
58 var FIT_MARGIN = 10; // Additional margin for width/height fitting, in order to avoid spurious scrollbars
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
60 Vue.component('pdf-viewer', {
1657
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
61 props: [ 'prefix' ],
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
62 template: '#pdf-viewer',
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
63 data: function() {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
64 return {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
65 container: null,
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
66 canvas: null,
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
67 ctx: null,
1657
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
68 pdf: null, // "pdf" must correspond to a "Uint8Array"
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
69
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
70 scale: 1,
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
71 countPages: 0,
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
72 currentPage: 0,
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
73 pdfDoc: null,
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
74 isRendering: false,
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
75 pageNumPending: null
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
76 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
77 },
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
78 mounted: function() {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
79 this.container = document.getElementById(this.prefix + '-container');
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
80 this.canvas = document.getElementById(this.prefix + '-canvas');
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
81 this.ctx = this.canvas.getContext('2d');
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
82
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
83 if (this.container === null ||
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
84 this.canvas === null ||
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
85 this.ctx === null) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
86 alert('Bad viewer configuration');
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
87 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
88
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
89 var that = this;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
90 this.container.addEventListener('wheel', function(event) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
91 that.MouseWheel(event);
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
92 });
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
93 },
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
94 methods: {
2164
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
95 Download: function() {
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
96 if (this.pdfDoc !== null) {
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
97 const blob = new Blob([this.pdf], { type: 'application/pdf'});
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
98 const blobUrl = URL.createObjectURL(blob);
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
99
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
100 const a = document.createElement('a');
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
101 a.href = blobUrl;
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
102 a.download = "report.pdf";
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
103
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
104 document.body.appendChild(a);
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
105 a.click();
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
106 document.body.removeChild(a);
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
107
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
108 // Revoke the object URL to free up memory
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
109 URL.revokeObjectURL(blobUrl);
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
110 }
952674a812c2 Added a Download button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2163
diff changeset
111 },
2163
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
112 Print: function() {
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
113 if (this.pdfDoc !== null) {
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
114 if (0) { // works on Chrome but with a popup that is blocked by default !
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
115 const blob = new Blob([this.pdf], { type: 'application/pdf'});
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
116 const blobUrl = URL.createObjectURL(blob);
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
117
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
118 let w = window.open(blobUrl, '_blank');
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
119 w.print();
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
120 } else {
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
121 // Let's open a new window with the pdf
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
122 // First we need to convert the pdf from a byte array to a binary string and then to b64
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
123 let binaryStringPdf = '';
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
124 for (let i = 0; i < this.pdf.length; i++) {
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
125 binaryStringPdf += String.fromCharCode(this.pdf[i]);
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
126 }
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
127
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
128 const htmlContent = '<html><body style="margin: 0;"><embed width="100%" height="100%" src="data:application/pdf;base64,' + btoa(binaryStringPdf) + '" type="application/pdf" /></body></html>';
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
129
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
130 let w = window.open('', '_blank');
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
131 w.document.write(htmlContent);
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
132 }
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
133 }
0a2b450cec3a Added a Print button in the PDF viewer toolbar
Alain Mazy <am@orthanc.team>
parents: 2124
diff changeset
134 },
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135 NextPage: function() {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 if (this.pdfDoc !== null &&
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137 this.currentPage < this.pdfDoc.numPages) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
138 this.QueueRenderPage(this.currentPage + 1);
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
139 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
140 },
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
141 PreviousPage: function() {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142 if (this.pdfDoc !== null &&
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143 this.currentPage > 1) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144 this.QueueRenderPage(this.currentPage - 1);
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
146 },
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 FitWidth: function() {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148 if (this.pdfDoc !== null) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149 var that = this;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
150 this.pdfDoc.getPage(this.currentPage).then(function(page) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
151 // https://github.com/mozilla/pdf.js/issues/5628
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
152 // https://stackoverflow.com/a/21064102/881731
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
153 // https://stackoverflow.com/a/60008044/881731
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
154 var scrollbarWidth = window.innerWidth - document.body.clientWidth + FIT_MARGIN;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
155 that.scale = (that.container.offsetWidth - scrollbarWidth) / page.getViewport({ scale: 1.0 }).width;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
156 that.QueueRenderPage(that.currentPage);
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
157 });
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
159 },
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160 FitHeight: function() {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
161 if (this.pdfDoc !== null) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
162 var that = this;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
163 this.pdfDoc.getPage(this.currentPage).then(function(page) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
164 // The computation below assumes that "line-height: 0px" CSS
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
165 // on the parent element of the canvas.
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
166
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
167 // https://github.com/mozilla/pdf.js/issues/5628
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
168 var scrollbarHeight = window.innerHeight - document.body.clientHeight + FIT_MARGIN;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
169 that.scale = (that.container.offsetHeight - scrollbarHeight) / page.getViewport({ scale: 1.0 }).height;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
170 that.QueueRenderPage(that.currentPage);
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
171 });
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
172 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
173 },
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
174 ZoomIn: function() {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
175 this.scale *= ZOOM_FACTOR;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
176 this.QueueRenderPage(this.currentPage);
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
177 },
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
178 ZoomOut: function() {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
179 this.scale /= ZOOM_FACTOR;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
180 this.QueueRenderPage(this.currentPage);
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
181 },
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
182 LoadPdf: function(pdf) {
1657
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
183 if (!this.isRendering &&
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
184 pdf.length > 0) {
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
185 this.pdf = pdf;
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
186 this.isRendering = true;
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
187
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
188 var that = this;
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
189 pdfjsLib.getDocument(this.pdf).promise.then(function(pdfDoc_) {
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
190 that.pdfDoc = pdfDoc_;
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
191 that.currentPage = 1;
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
192 that.countPages = pdfDoc_.numPages;
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
193 that.scale = 1;
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
194 that.isRendering = false;
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
195 that.pageNumPending = null;
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
196
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
197 // Initial/first page rendering, after fitting the PDF to the available viewport
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
198 that.FitHeight();
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
199 });
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
200 }
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
201 },
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
202 RenderPage: function(pageNum) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
203 var that = this;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
204
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
205 if (this.pdfDoc !== null &&
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
206 pageNum >= 1 &&
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
207 pageNum <= this.countPages) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
208 this.isRendering = true;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
209 this.pdfDoc.getPage(pageNum).then(function(page) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
210 var viewport = page.getViewport({scale: that.scale});
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
211
1661
e4589378ad8b warning message about unsupported videos
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1657
diff changeset
212 that.canvas.style['background-color'] = 'white'; // avoids flickering while the page changes
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
213 that.canvas.height = viewport.height;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
214 that.canvas.width = viewport.width;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
215
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
216 // Horizontal centering of the canvas. This requires CSS
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
217 // "position: relative" on the canvas element.
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
218 if (that.canvas.width < that.container.clientWidth) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
219 that.canvas.style.left = Math.floor((that.container.clientWidth - viewport.width) / 2) + 'px';
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
220 } else {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
221 that.canvas.style.left = '0px';
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
222 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
223
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
224 // Render PDF page into canvas context
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
225 var renderContext = {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
226 canvasContext: that.ctx,
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
227 viewport: viewport
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
228 };
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
229
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
230 var renderTask = page.render(renderContext);
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
231
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
232 // Wait for rendering to finish
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
233 renderTask.promise.then(function() {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
234 that.isRendering = false;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
235 that.currentPage = pageNum;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
236 if (that.pageNumPending !== null) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
237 // New page rendering is pending
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
238 that.currentPage = that.pageNumPending;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
239 that.pageNumPending = null;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
240 that.RenderPage();
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
241 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
242 });
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
243 });
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
244 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
245 },
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
246 QueueRenderPage: function(pageNum) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
247 if (this.isRendering) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
248 this.pageNumPending = pageNum;
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
249 } else {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
250 this.RenderPage(pageNum);
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
251 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
252 },
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
253 MouseWheel: function(event) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
254 if (event.ctrlKey) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
255 if (event.deltaY < 0) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
256 this.ZoomIn();
1657
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
257 event.preventDefault();
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
258 } else if (event.deltaY > 0) {
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
259 this.ZoomOut();
1657
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
260 event.preventDefault();
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
261 }
1657
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
262 } else if (!event.shiftKey &&
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
263 !event.altKey &&
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
264 !event.metaKey) {
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
265 // Is the vertical scrollbar hidden?
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
266 // https://stackoverflow.com/a/4814526/881731
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
267 if (this.container.scrollHeight <= this.container.clientHeight) {
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
268 if (event.deltaY < 0) {
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
269 this.PreviousPage();
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
270 event.preventDefault();
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
271 } else if (event.deltaY > 0) {
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
272 this.NextPage();
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
273 event.preventDefault();
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
274 }
66e5fcdf5597 pdf viewer is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1652
diff changeset
275 }
1652
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
276 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
277 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
278 }
fa9e6bf84958 integrating pdf.js into Stone Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
279 });