@toolspack/ttd-pdfjs 0.0.9 → 0.0.10
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/README.md +11 -0
- package/lib/demo.html +8 -1
- package/lib/ttd-pdfjs.common.js +8932 -6492
- package/lib/ttd-pdfjs.umd.js +8952 -6513
- package/lib/ttd-pdfjs.umd.min.js +11 -24
- package/package.json +3 -3
- package/src/packages/pdfjs/PdfView216.vue +79 -56
- /package/lib/static/fonts/{element-icons.ff18efd1.woff → element-icons.535877f5.woff} +0 -0
- /package/lib/static/fonts/{element-icons.f1a45d74.ttf → element-icons.732389de.ttf} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toolspack/ttd-pdfjs",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.10",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "lib/ttd-pdfjs.umd.min.js",
|
|
6
6
|
"scripts": {
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
25
|
-
"@vue/cli-plugin-babel": "~4.5.
|
|
25
|
+
"@vue/cli-plugin-babel": "~4.5.11",
|
|
26
26
|
"@vue/cli-plugin-eslint": "~4.5.11",
|
|
27
|
-
"@vue/cli-service": "
|
|
27
|
+
"@vue/cli-service": "^4.5.11",
|
|
28
28
|
"@vue/eslint-config-airbnb": "^5.3.0",
|
|
29
29
|
"babel-eslint": "^10.1.0",
|
|
30
30
|
"babel-plugin-component": "^1.1.1",
|
|
@@ -9,12 +9,13 @@
|
|
|
9
9
|
class="center pdf-view-area"
|
|
10
10
|
@drop="onDrop"
|
|
11
11
|
@dragover="onDragOver"
|
|
12
|
+
:key="pdfurl"
|
|
12
13
|
:style="{'border': border?'1px solid #666': ''}"
|
|
13
14
|
v-if="pdfurl"
|
|
14
15
|
>
|
|
15
16
|
<div v-if="fileLoading" class="pdf-view-loading">文件加载中...</div>
|
|
16
|
-
|
|
17
|
-
<canvas class="canvasstyle" ref="canvas"></canvas>
|
|
17
|
+
<div v-else-if="pageRendering" class="pdf-view-rendering">内容渲染中...</div>
|
|
18
|
+
<canvas :key="pdfurl +'canvas'" class="canvasstyle" ref="canvas"></canvas>
|
|
18
19
|
<div class="label-area">
|
|
19
20
|
<slot></slot>
|
|
20
21
|
</div>
|
|
@@ -117,57 +118,67 @@ export default {
|
|
|
117
118
|
},
|
|
118
119
|
methods: {
|
|
119
120
|
async renderPage(num) {
|
|
121
|
+
console.log('renderPage ', this.pageRendering)
|
|
122
|
+
if (this.pageRendering) {
|
|
123
|
+
this.pageNumPending = num;
|
|
124
|
+
} else {
|
|
120
125
|
// 渲染pdf
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
let scaleNum = vm.compuscale
|
|
127
|
-
let viewport = ''
|
|
128
|
-
const viewboxWidth = this.showWidth
|
|
129
|
-
if (this.initPage && viewboxWidth) {
|
|
130
|
-
const desiredWidth = parseInt(viewboxWidth, 10) - 2
|
|
131
|
-
// 首先获得pdf 原本宽度,然后根据showWidth 计算缩放倍数
|
|
132
|
-
viewport = page.getViewport({ scale: 1.0 })
|
|
133
|
-
scaleNum = desiredWidth / viewport.width
|
|
134
|
-
this.initPage = false
|
|
135
|
-
this.compuscale = scaleNum
|
|
136
|
-
this.maxscale = scaleNum
|
|
126
|
+
const vm = this
|
|
127
|
+
this.pageRendering = true
|
|
128
|
+
// Using promise to fetch the page
|
|
129
|
+
if (!this.pdfDoc) {
|
|
130
|
+
return false
|
|
137
131
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
132
|
+
try {
|
|
133
|
+
const page = await this.pdfDoc.getPage(num)
|
|
134
|
+
let scaleNum = vm.compuscale
|
|
135
|
+
let viewport = ''
|
|
136
|
+
const viewboxWidth = this.showWidth
|
|
137
|
+
if (this.initPage && viewboxWidth) {
|
|
138
|
+
const desiredWidth = parseInt(viewboxWidth, 10) - 2
|
|
139
|
+
// 首先获得pdf 原本宽度,然后根据showWidth 计算缩放倍数
|
|
140
|
+
viewport = page.getViewport({ scale: 1.0 })
|
|
141
|
+
scaleNum = desiredWidth / viewport.width
|
|
142
|
+
this.initPage = false
|
|
143
|
+
this.compuscale = scaleNum
|
|
144
|
+
this.maxscale = scaleNum
|
|
145
|
+
}
|
|
146
|
+
// 重新渲染 缩放过的PDF
|
|
147
|
+
viewport = page.getViewport({ scale: scaleNum })
|
|
148
|
+
this.viewport = viewport
|
|
141
149
|
|
|
142
|
-
|
|
143
|
-
|
|
150
|
+
// 将 canvas 尺寸 传给父组件
|
|
151
|
+
this.$emit('size', viewport, num)
|
|
144
152
|
|
|
145
|
-
|
|
146
|
-
|
|
153
|
+
// Render PDF page into canvas context
|
|
154
|
+
vm.isready = true
|
|
147
155
|
|
|
148
|
-
|
|
156
|
+
const { canvas } = vm.$refs
|
|
149
157
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
158
|
+
this.style.width = `${viewport.width + 2}px`;
|
|
159
|
+
canvas.height = viewport.height
|
|
160
|
+
canvas.width = viewport.width
|
|
153
161
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
+
const renderContext = {
|
|
163
|
+
canvasContext: canvas.getContext('2d'),
|
|
164
|
+
viewport,
|
|
165
|
+
}
|
|
166
|
+
// Wait for rendering to finish
|
|
167
|
+
await page.render(renderContext).promise
|
|
168
|
+
// console.log(' await page.render 168')
|
|
169
|
+
vm.pageRendering = false
|
|
170
|
+
if (vm.pageNumPending !== null) {
|
|
162
171
|
// New page rendering is pending
|
|
163
|
-
|
|
164
|
-
|
|
172
|
+
vm.renderPage(vm.pageNumPending)
|
|
173
|
+
vm.pageNumPending = null
|
|
174
|
+
}
|
|
175
|
+
this.$emit('renderSuccess')
|
|
176
|
+
} catch (error) {
|
|
177
|
+
console.error(error)
|
|
178
|
+
} finally {
|
|
179
|
+
// console.log('finally 178')
|
|
180
|
+
this.pageRendering = false
|
|
165
181
|
}
|
|
166
|
-
this.$emit('renderSuccess')
|
|
167
|
-
} catch (error) {
|
|
168
|
-
console.error(error)
|
|
169
|
-
} finally {
|
|
170
|
-
this.pageRendering = false
|
|
171
182
|
}
|
|
172
183
|
},
|
|
173
184
|
prev() {
|
|
@@ -206,13 +217,15 @@ export default {
|
|
|
206
217
|
}
|
|
207
218
|
this.viewport = null
|
|
208
219
|
this.pdfDoc.destroy();
|
|
220
|
+
// console.log('closepdf end')
|
|
209
221
|
}
|
|
210
|
-
this.pdfDoc = null
|
|
222
|
+
// this.pdfDoc = null
|
|
211
223
|
this.isready = false
|
|
212
224
|
this.compuscale = this.scale
|
|
213
225
|
this.$emit('closepdf')
|
|
214
226
|
},
|
|
215
227
|
queueRenderPage(num) {
|
|
228
|
+
// console.log('queueRenderPage 226', this.pageRendering)
|
|
216
229
|
if (this.pageRendering) {
|
|
217
230
|
this.pageNumPending = num
|
|
218
231
|
} else {
|
|
@@ -231,6 +244,10 @@ export default {
|
|
|
231
244
|
// console.log('-----encodeURI------', url)
|
|
232
245
|
// }
|
|
233
246
|
console.log('----PdfView---', url)
|
|
247
|
+
if (this.pdfDoc) {
|
|
248
|
+
// console.log('pdfDocument is ready destroy,,')
|
|
249
|
+
this.pdfDoc.destroy();
|
|
250
|
+
}
|
|
234
251
|
let pdfDoc_
|
|
235
252
|
try {
|
|
236
253
|
pdfDoc_ = await PDFJS.getDocument({
|
|
@@ -249,16 +266,13 @@ export default {
|
|
|
249
266
|
} finally {
|
|
250
267
|
this.fileLoading = false
|
|
251
268
|
}
|
|
252
|
-
|
|
253
|
-
//
|
|
254
|
-
if (this.pdfDoc) {
|
|
255
|
-
console.log('pdfDocument is ready destroy,,')
|
|
256
|
-
await this.closepdf();
|
|
257
|
-
this.pdfDoc = null
|
|
258
|
-
}
|
|
269
|
+
// console.log('pdfDoc_', pdfDoc_)
|
|
270
|
+
// debugger
|
|
259
271
|
this.pdfDoc = pdfDoc_
|
|
272
|
+
// 初始化pdf
|
|
260
273
|
this.page_count = pdfDoc_.numPages
|
|
261
274
|
this.$emit('numPages', pdfDoc_.numPages)
|
|
275
|
+
// console.log('265', this.pageRendering)
|
|
262
276
|
this.renderPage(this.pageNum)
|
|
263
277
|
this.emitPage(this.pageNum)
|
|
264
278
|
},
|
|
@@ -272,6 +286,7 @@ export default {
|
|
|
272
286
|
},
|
|
273
287
|
updateScale() {
|
|
274
288
|
this.compuscale = this.scale
|
|
289
|
+
// console.log('updateScale 278')
|
|
275
290
|
this.renderPage(this.pageNum)
|
|
276
291
|
},
|
|
277
292
|
},
|
|
@@ -296,14 +311,16 @@ export default {
|
|
|
296
311
|
},
|
|
297
312
|
pdfurl: {
|
|
298
313
|
handler(val) {
|
|
314
|
+
// console.log('watch url change: ', val)
|
|
315
|
+
if (this.pdfDoc) {
|
|
316
|
+
// console.log('closepdf')
|
|
317
|
+
this.closepdf();
|
|
318
|
+
}
|
|
299
319
|
this.$nextTick(() => {
|
|
300
320
|
if (val) {
|
|
301
321
|
this.pageNum = 1
|
|
302
322
|
this.initPage = true
|
|
303
323
|
this.loadUrl(val)
|
|
304
|
-
if (this.pdfDoc) {
|
|
305
|
-
this.closepdf();
|
|
306
|
-
}
|
|
307
324
|
}
|
|
308
325
|
if (this.showPages) {
|
|
309
326
|
this.$refs.switchPage.setPage(1)
|
|
@@ -314,7 +331,13 @@ export default {
|
|
|
314
331
|
},
|
|
315
332
|
// 监听页码变化,渲染对应合同页
|
|
316
333
|
page(newPage, oldPage) {
|
|
317
|
-
|
|
334
|
+
// console.log('watch page change: ', newPage)
|
|
335
|
+
if (this.pdfDoc) {
|
|
336
|
+
this.queueRenderPage(newPage)
|
|
337
|
+
} else {
|
|
338
|
+
this.pageNum = newPage
|
|
339
|
+
// console.log('no pdfDoc')
|
|
340
|
+
}
|
|
318
341
|
},
|
|
319
342
|
},
|
|
320
343
|
}
|
|
File without changes
|
|
File without changes
|