mirror of
https://github.com/501351981/vue-office.git
synced 2025-07-15 07:32:19 +08:00
change:pdf在某些环境打包失败问题
This commit is contained in:
parent
a62bb83234
commit
c8f81e4802
@ -1,13 +1,18 @@
|
||||
<template>
|
||||
<div class="pdf-demo">
|
||||
<vue-office-pdf src="http://static.shanhuxueyuan.com/test.pdf"/>
|
||||
<vue-office-pdf :src="src"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
/* eslint-disable */
|
||||
export default {
|
||||
name: "PdfDemo"
|
||||
name: "PdfDemo",
|
||||
data(){
|
||||
return {
|
||||
src:'http://static.shanhuxueyuan.com/test.pdf'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
26
lib/index.js
26
lib/index.js
File diff suppressed because one or more lines are too long
15743
lib/pdf/index.js
15743
lib/pdf/index.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
24
lib/pdf/vue-office-pdf.umd.min.js
vendored
24
lib/pdf/vue-office-pdf.umd.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15719
lib/vue-office.common.js
15719
lib/vue-office.common.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
15719
lib/vue-office.umd.js
15719
lib/vue-office.umd.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
26
lib/vue-office.umd.min.js
vendored
26
lib/vue-office.umd.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
7838
package-lock.json
generated
7838
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -4,16 +4,18 @@
|
||||
v-if="numPages"
|
||||
class="vue-office-pdf-wrapper"
|
||||
style="background: gray; padding: 30px 0;position: relative;">
|
||||
<canvas :ref="'canvas'+ page" v-for="page in numPages" :key="page" />
|
||||
<canvas :ref="'canvas'+ page" v-for="page in numPages" :key="page"/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {worker} from './worker'
|
||||
const pdfJsLib = require('pdfjs-dist');
|
||||
const PdfJsWorker = `data:text/javascript;base64,${worker}`;
|
||||
pdfJsLib.GlobalWorkerOptions.workerSrc = PdfJsWorker
|
||||
import {pdfjsLib} from './pdf'
|
||||
import loadScript from "./utils/loadScript";
|
||||
const pdfJsLibSrc = `data:text/javascript;base64,${pdfjsLib}`;
|
||||
const PdfJsWorkerSrc = `data:text/javascript;base64,${worker}`;
|
||||
|
||||
export default {
|
||||
name: "VueOfficePdf",
|
||||
props: {
|
||||
@ -29,21 +31,32 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
src() {
|
||||
this.init()
|
||||
this.checkPdfLib().then(this.init)
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.src) {
|
||||
this.init()
|
||||
this.checkPdfLib().then(this.init)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
checkPdfLib() {
|
||||
if (window.pdfjsLib) {
|
||||
return Promise.resolve()
|
||||
}
|
||||
return this.installPdfScript()
|
||||
},
|
||||
installPdfScript() {
|
||||
return loadScript(pdfJsLibSrc).then(() => {
|
||||
window.pdfjsLib.GlobalWorkerOptions.workerSrc = PdfJsWorkerSrc
|
||||
});
|
||||
},
|
||||
init() {
|
||||
if(!this.src){
|
||||
if (!this.src) {
|
||||
this.numPages = 0
|
||||
return
|
||||
}
|
||||
const loadingTask = pdfJsLib.getDocument(this.src);
|
||||
const loadingTask = window.pdfjsLib.getDocument(this.src);
|
||||
loadingTask.promise
|
||||
.then((pdfDocument) => {
|
||||
this.document = pdfDocument;
|
||||
@ -66,10 +79,10 @@ export default {
|
||||
if (this.numPages > num) {
|
||||
this.renderPage(num + 1);
|
||||
}
|
||||
}).catch(()=>{
|
||||
}).catch(() => {
|
||||
|
||||
});
|
||||
}).catch(()=>{
|
||||
}).catch(() => {
|
||||
|
||||
});
|
||||
|
||||
|
1
packages/pdf/src/pdf.js
Normal file
1
packages/pdf/src/pdf.js
Normal file
File diff suppressed because one or more lines are too long
13
packages/pdf/src/utils/loadScript.js
Normal file
13
packages/pdf/src/utils/loadScript.js
Normal file
@ -0,0 +1,13 @@
|
||||
export default function (src){
|
||||
return new Promise(((resolve, reject) => {
|
||||
let script = document.createElement('script')
|
||||
script.src = src
|
||||
script.onload = function (){
|
||||
resolve()
|
||||
}
|
||||
script.onerror = function (){
|
||||
reject()
|
||||
}
|
||||
document.body.append(script)
|
||||
}))
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user