@toolspack/ttd-pdfjs 0.1.5 → 0.1.7
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 +2 -1
- package/lib/ttd-pdfjs.common.js +125 -107
- package/lib/ttd-pdfjs.umd.js +125 -107
- package/lib/ttd-pdfjs.umd.min.js +4 -4
- package/package.json +1 -1
- package/src/packages/pdfjs/PdfView.vue +23 -10
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
:page="page" :zoomEnable="zoomEnable" :rotateEnable="rotateEnable"
|
|
6
6
|
@page="onChangePage" @zoom="onScale" @rotate="onRotate"></switch-page>
|
|
7
7
|
</div>
|
|
8
|
-
<div class="pdf-view-area-wapper"
|
|
8
|
+
<div class="pdf-view-area-wapper">
|
|
9
9
|
<div>
|
|
10
10
|
<div
|
|
11
11
|
class="center pdf-view-area"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
>
|
|
18
18
|
<div v-if="fileLoading" class="pdf-view-loading">文件加载中...</div>
|
|
19
19
|
<div v-else-if="pageRendering" class="pdf-view-rendering">内容渲染中...</div>
|
|
20
|
-
<canvas :key="pdfurl +'canvas'" class="canvasstyle" ref="canvas"></canvas>
|
|
20
|
+
<canvas :key="pdfurl +'canvas'" class="canvasstyle" :style="{with: showWidth?showWidth+'px':'auto'}" ref="canvas"></canvas>
|
|
21
21
|
<div class="label-area">
|
|
22
22
|
<slot></slot>
|
|
23
23
|
</div>
|
|
@@ -59,6 +59,7 @@ const PDFJS = require('pdfjs-dist')
|
|
|
59
59
|
|
|
60
60
|
const defautScale = 1.0
|
|
61
61
|
// PDFJS.GlobalWorkerOptions.workerSrc = require('pdfjs-dist/legacy/build/pdf.worker.min.js')
|
|
62
|
+
// eslint-disable-next-line
|
|
62
63
|
PDFJS.GlobalWorkerOptions.workerSrc = require('pdfjs-dist/build/pdf.worker.min.js')
|
|
63
64
|
// https://unpkg.com/pdfjs-dist@2.16.105/cmaps/
|
|
64
65
|
// 使用代理的cmaps,会导致加载很慢,改用本地
|
|
@@ -120,6 +121,7 @@ export default {
|
|
|
120
121
|
pageNumPending: null,
|
|
121
122
|
compuscale: defautScale, // 放大倍数
|
|
122
123
|
compuRotate: undefined, // 实际旋转度数, 默认值必须是 undefined
|
|
124
|
+
pdf_rotation: 0, // pdf 的旋转度数
|
|
123
125
|
page_count: 0, // 总页数
|
|
124
126
|
maxscale, // 最大放大倍数
|
|
125
127
|
minscale, // 最小放大倍数
|
|
@@ -134,7 +136,7 @@ export default {
|
|
|
134
136
|
},
|
|
135
137
|
methods: {
|
|
136
138
|
async renderPage(num) {
|
|
137
|
-
console.log('renderPage ', this.pageRendering)
|
|
139
|
+
// console.log('renderPage ', num, this.pageRendering)
|
|
138
140
|
if (this.pageRendering) {
|
|
139
141
|
this.pageNumPending = num;
|
|
140
142
|
} else {
|
|
@@ -151,22 +153,22 @@ export default {
|
|
|
151
153
|
let viewport = ''
|
|
152
154
|
const viewboxWidth = this.showWidth
|
|
153
155
|
if (this.initPage) {
|
|
154
|
-
|
|
156
|
+
const viewportInit = await page.getViewport({ scale: 1.0 })
|
|
155
157
|
if (viewboxWidth) {
|
|
156
158
|
const desiredWidth = parseInt(viewboxWidth, 10) - 2
|
|
157
159
|
// 首先获得pdf 原本宽度,然后根据showWidth 计算缩放倍数
|
|
158
|
-
scaleNum = desiredWidth /
|
|
160
|
+
scaleNum = desiredWidth / viewportInit.width
|
|
159
161
|
this.compuscale = scaleNum
|
|
160
162
|
this.maxscale = scaleNum
|
|
161
163
|
}
|
|
162
164
|
// console.log('xxxxxx', this.compuRotate, viewport.rotation)
|
|
163
|
-
this.
|
|
165
|
+
this.pdf_rotation = viewportInit.rotation
|
|
164
166
|
this.initPage = false
|
|
165
167
|
}
|
|
166
168
|
// 重新渲染 缩放过的PDF
|
|
167
|
-
viewport = page.getViewport({ scale: scaleNum, rotation: this.compuRotate })
|
|
169
|
+
viewport = await page.getViewport({ scale: scaleNum, rotation: this.compuRotate })
|
|
168
170
|
this.viewport = viewport
|
|
169
|
-
|
|
171
|
+
// console.log('rotation -', num, viewport.rotation)
|
|
170
172
|
// 将 canvas 尺寸 传给父组件
|
|
171
173
|
this.$emit('size', viewport, num)
|
|
172
174
|
|
|
@@ -177,7 +179,7 @@ export default {
|
|
|
177
179
|
if (!canvas) {
|
|
178
180
|
return false
|
|
179
181
|
}
|
|
180
|
-
this.style.width = `${viewport.width +
|
|
182
|
+
this.style.width = `${viewport.width + 18}px`;
|
|
181
183
|
this.pdfWidth = `${viewport.width}px`;
|
|
182
184
|
canvas.height = viewport.height
|
|
183
185
|
canvas.width = viewport.width
|
|
@@ -218,9 +220,12 @@ export default {
|
|
|
218
220
|
return
|
|
219
221
|
}
|
|
220
222
|
this.pageNum++
|
|
223
|
+
// console.log('next', this.pageNum)
|
|
221
224
|
this.queueRenderPage(this.pageNum)
|
|
222
225
|
},
|
|
223
226
|
onChangePage(page) {
|
|
227
|
+
this.pageNum = page
|
|
228
|
+
// console.log('onChangePage', page)
|
|
224
229
|
this.emitPage(page)
|
|
225
230
|
// switch page 改变页码
|
|
226
231
|
this.queueRenderPage(page)
|
|
@@ -317,7 +322,12 @@ export default {
|
|
|
317
322
|
this.renderPage(this.pageNum)
|
|
318
323
|
},
|
|
319
324
|
onRotate(rotate) {
|
|
320
|
-
this.compuRotate
|
|
325
|
+
// console.log('rotate -', rotate, this.compuRotate, this.pageNum)
|
|
326
|
+
if (this.compuRotate === undefined) {
|
|
327
|
+
this.compuRotate = this.pdf_rotation + rotate
|
|
328
|
+
} else {
|
|
329
|
+
this.compuRotate += rotate
|
|
330
|
+
}
|
|
321
331
|
this.renderPage(this.pageNum)
|
|
322
332
|
},
|
|
323
333
|
},
|
|
@@ -378,6 +388,7 @@ export default {
|
|
|
378
388
|
width: 100%;
|
|
379
389
|
display: flex;
|
|
380
390
|
flex-direction: column;
|
|
391
|
+
box-sizing: border-box;
|
|
381
392
|
min-width: 688px;
|
|
382
393
|
}
|
|
383
394
|
.pdf-view-control {
|
|
@@ -389,10 +400,12 @@ export default {
|
|
|
389
400
|
overflow: auto;
|
|
390
401
|
width: 100%;
|
|
391
402
|
flex-shrink: 0%;
|
|
403
|
+
box-sizing: border-box;
|
|
392
404
|
}
|
|
393
405
|
.pdf-view-area {
|
|
394
406
|
position: relative;
|
|
395
407
|
min-height: 100px;
|
|
408
|
+
box-sizing: border-box;
|
|
396
409
|
.canvasstyle {
|
|
397
410
|
display: block;
|
|
398
411
|
margin: 0 auto;
|