vue-pdf-worker-fix
Advanced tools
Comparing version 4.2.1 to 4.2.2
{ | ||
"name": "vue-pdf-worker-fix", | ||
"version": "4.2.1", | ||
"version": "4.2.2", | ||
"description": "vue.js pdf viewer - worker fix", | ||
@@ -17,3 +17,3 @@ "main": "src/vuePdfNoSss.vue", | ||
], | ||
"author": "Franck FREIBURGER", | ||
"author": "Paolo Zanchi", | ||
"license": "MIT", | ||
@@ -20,0 +20,0 @@ "bugs": { |
287
README.md
@@ -1,7 +0,7 @@ | ||
# vue-pdf | ||
vue.js pdf viewer | ||
# vue-pdf-worker-fix | ||
vue.js pdf viewer - this is a fork of the original [vue-pdf](https://www.npmjs.com/package/vue-pdf) | ||
## Install | ||
```bash | ||
npm install --save vue-pdf | ||
npm i vue-pdf-worker-fix | ||
``` | ||
@@ -12,11 +12,13 @@ | ||
<template> | ||
<pdf src="./static/relativity.pdf"></pdf> | ||
<vue-pdf | ||
src="./static/relativity.pdf" | ||
/> | ||
</template> | ||
<script> | ||
import pdf from 'vue-pdf' | ||
import vuePdf from 'vue-pdf-worker-fix' | ||
export default { | ||
components: { | ||
vuePdf | ||
} | ||
@@ -103,26 +105,25 @@ } | ||
<template> | ||
<div> | ||
{{currentPage}} / {{pageCount}} | ||
src="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf" | ||
@num-pages="pageCount = $event" | ||
@page-loaded="currentPage = $event" | ||
></pdf> | ||
</div> | ||
<div> | ||
{{currentPage}} / {{pageCount}} | ||
<vue-pdf | ||
src="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf" | ||
@num-pages="pageCount = $event" | ||
@page-loaded="currentPage = $event" | ||
/> | ||
</div> | ||
</template> | ||
<script> | ||
import vuePdf from 'vue-pdf-worker-fix' | ||
import pdf from 'vue-pdf' | ||
export default { | ||
components: { | ||
}, | ||
data() { | ||
return { | ||
currentPage: 0, | ||
pageCount: 0, | ||
} | ||
} | ||
components: { | ||
vuePdf | ||
}, | ||
data() { | ||
return { | ||
currentPage: 0, | ||
pageCount: 0, | ||
} | ||
} | ||
} | ||
@@ -137,36 +138,33 @@ | ||
<template> | ||
<div> | ||
v-for="i in numPages" | ||
:key="i" | ||
:src="src" | ||
:page="i" | ||
style="display: inline-block; width: 25%" | ||
></pdf> | ||
</div> | ||
<div> | ||
<vue-pdf | ||
v-for="i in numPages" | ||
:key="i" | ||
:src="src" | ||
:page="i" | ||
style="display: inline-block; width: 25%" | ||
/> | ||
</div> | ||
</template> | ||
<script> | ||
import vuePdf from 'vue-pdf-worker-fix' | ||
import pdf from 'vue-pdf' | ||
var loadingTask = pdf.createLoadingTask('https://cdn.mozilla.net/pdfjs/tracemonkey.pdf'); | ||
export default { | ||
components: { | ||
}, | ||
data() { | ||
return { | ||
src: loadingTask, | ||
numPages: undefined, | ||
} | ||
}, | ||
mounted() { | ||
this.src.promise.then(pdf => { | ||
this.numPages = pdf.numPages; | ||
}); | ||
} | ||
components: { | ||
vuePdf | ||
}, | ||
data() { | ||
return { | ||
src: loadingTask, | ||
numPages: undefined, | ||
} | ||
}, | ||
mounted() { | ||
this.src.promise.then(pdf => { | ||
this.numPages = pdf.numPages; | ||
}); | ||
} | ||
} | ||
@@ -181,4 +179,9 @@ | ||
<template> | ||
<button @click="$refs.myPdfComponent.print()">print</button> | ||
<pdf ref="myPdfComponent" src="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf"></pdf> | ||
<button @click="$refs.myPdfComponent.print()"> | ||
</button> | ||
<vue-pdf | ||
ref="myPdfComponent" | ||
src="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf" | ||
/> | ||
</template> | ||
@@ -191,4 +194,9 @@ ``` | ||
<template> | ||
<button @click="$refs.myPdfComponent.print(100, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])">print</button> | ||
<pdf ref="myPdfComponent" src="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf"></pdf> | ||
<button @click="$refs.myPdfComponent.print(100, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])"> | ||
</button> | ||
<vue-pdf | ||
ref="myPdfComponent" | ||
src="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf" | ||
/> | ||
</template> | ||
@@ -201,37 +209,33 @@ ``` | ||
<template> | ||
<div> | ||
<button | ||
@click="logContent" | ||
> | ||
log content | ||
</button> | ||
ref="myPdfComponent" | ||
src="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf" | ||
></pdf> | ||
</div> | ||
<div> | ||
<button @click="logContent"> | ||
log content | ||
</button> | ||
<vue-pdf | ||
ref="myPdfComponent" | ||
src="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf" | ||
/> | ||
</div> | ||
</template> | ||
<script> | ||
import vuePdf from 'vue-pdf-worker-fix' | ||
import pdf from 'vue-pdf' | ||
export default { | ||
components: { | ||
}, | ||
methods: { | ||
logContent() { | ||
components: { | ||
vuePdf | ||
}, | ||
methods: { | ||
logContent() { | ||
this.$refs.myPdfComponent.pdf.forEachPage(function(page) { | ||
this.$refs.myPdfComponent.pdf.forEachPage(function(page) { | ||
return page.getTextContent() | ||
.then(function(content) { | ||
return page.getTextContent() | ||
.then(function(content) { | ||
var text = content.items.map(item => item.str); | ||
console.log(text); | ||
}) | ||
}); | ||
} | ||
} | ||
var text = content.items.map(item => item.str); | ||
console.log(text); | ||
}) | ||
}); | ||
} | ||
} | ||
} | ||
@@ -246,53 +250,70 @@ | ||
<template> | ||
<div> | ||
<input type="checkbox" v-model="show"> | ||
<select v-model="src" style="width: 30em"> | ||
<option v-for="item in pdfList" :value="item" v-text="item"></option> | ||
</select> | ||
<input v-model.number="page" type="number" style="width: 5em"> /{{numPages}} | ||
<button @click="rotate += 90">⟳</button> | ||
<button @click="rotate -= 90">⟲</button> | ||
<button @click="$refs.pdf.print()">print</button> | ||
<div style="width: 50%"> | ||
<div v-if="loadedRatio > 0 && loadedRatio < 1" style="background-color: green; color: white; text-align: center" :style="{ width: loadedRatio * 100 + '%' }">{{ Math.floor(loadedRatio * 100) }}%</div> | ||
<pdf v-if="show" ref="pdf" style="border: 1px solid red" :src="src" :page="page" :rotate="rotate" @password="password" @progress="loadedRatio = $event" @error="error" @num-pages="numPages = $event" @link-clicked="page = $event"></pdf> | ||
</div> | ||
</div> | ||
<div> | ||
<input type="checkbox" v-model="show" /> | ||
<select v-model="src" style="width: 30em"> | ||
<option v-for="item in pdfList" :value="item" v-text="item"></option> | ||
</select> | ||
<input v-model.number="page" type="number" style="width: 5em" /> /{{numPages}} | ||
<button @click="rotate += 90">⟳</button> | ||
<button @click="rotate -= 90">⟲</button> | ||
<button @click="$refs.pdf.print()">print</button> | ||
<div style="width: 50%"> | ||
<div | ||
v-if="loadedRatio > 0 && loadedRatio < 1" | ||
style="background-color: green; color: white; text-align: center" | ||
:style="{ width: loadedRatio * 100 + '%' }" | ||
> | ||
{{ Math.floor(loadedRatio * 100) }}% | ||
</div> | ||
<vue-pdf | ||
v-if="show" | ||
ref="pdf" | ||
:src="src" | ||
:page="page" | ||
:rotate="rotate" | ||
@password="password" | ||
@progress="loadedRatio = $event" | ||
@error="error" | ||
@num-pages="numPages = $event" | ||
@link-clicked="page = $event" | ||
style="border: 1px solid red" | ||
/> | ||
</div> | ||
</div> | ||
</template> | ||
<script> | ||
import pdf from 'vue-pdf' | ||
import vuePdf from 'vue-pdf-worker-fix' | ||
export default { | ||
components: { | ||
pdf: pdf | ||
}, | ||
data () { | ||
return { | ||
show: true, | ||
pdfList: [ | ||
'', | ||
'https://cdn.mozilla.net/pdfjs/tracemonkey.pdf', | ||
'https://cdn.rawgit.com/mozilla/pdf.js/c6e8ca86/test/pdfs/freeculture.pdf', | ||
'https://cdn.rawgit.com/mozilla/pdf.js/c6e8ca86/test/pdfs/annotation-link-text-popup.pdf', | ||
'https://cdn.rawgit.com/mozilla/pdf.js/c6e8ca86/test/pdfs/calrgb.pdf', | ||
'https://cdn.rawgit.com/sayanee/angularjs-pdf/68066e85/example/pdf/relativity.protected.pdf', | ||
'data:application/pdf;base64,JVBERi0xLjUKJbXtrvsKMyAwIG9iago8PCAvTGVuZ3RoIDQgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nE2NuwoCQQxF+/mK+wMbk5lkHl+wIFislmIhPhYEi10Lf9/MVgZCAufmZAkMppJ6+ZLUuFWsM3ZXxvzpFNaMYjEriqpCtbZSBOsDzw0zjqPHZYtTrEmz4eto7/0K54t7GfegOGCBbBdDH3+y2zsMsVERc9SoRkXORqKGJupS6/9OmMIUfgypJL4KZW5kc3RyZWFtCmVuZG9iago0IDAgb2JqCiAgIDEzOAplbmRvYmoKMiAwIG9iago8PAogICAvRXh0R1N0YXRlIDw8CiAgICAgIC9hMCA8PCAvQ0EgMC42MTE5ODcgL2NhIDAuNjExOTg3ID4+CiAgICAgIC9hMSA8PCAvQ0EgMSAvY2EgMSA+PgogICA+Pgo+PgplbmRvYmoKNSAwIG9iago8PCAvVHlwZSAvUGFnZQogICAvUGFyZW50IDEgMCBSCiAgIC9NZWRpYUJveCBbIDAgMCA1OTUuMjc1NTc0IDg0MS44ODk3NzEgXQogICAvQ29udGVudHMgMyAwIFIKICAgL0dyb3VwIDw8CiAgICAgIC9UeXBlIC9Hcm91cAogICAgICAvUyAvVHJhbnNwYXJlbmN5CiAgICAgIC9DUyAvRGV2aWNlUkdCCiAgID4+CiAgIC9SZXNvdXJjZXMgMiAwIFIKPj4KZW5kb2JqCjEgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzCiAgIC9LaWRzIFsgNSAwIFIgXQogICAvQ291bnQgMQo+PgplbmRvYmoKNiAwIG9iago8PCAvQ3JlYXRvciAoY2Fpcm8gMS4xMS4yIChodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmcpKQogICAvUHJvZHVjZXIgKGNhaXJvIDEuMTEuMiAoaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3JnKSkKPj4KZW5kb2JqCjcgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cKICAgL1BhZ2VzIDEgMCBSCj4+CmVuZG9iagp4cmVmCjAgOAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDA1ODAgMDAwMDAgbiAKMDAwMDAwMDI1MiAwMDAwMCBuIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDAyMzAgMDAwMDAgbiAKMDAwMDAwMDM2NiAwMDAwMCBuIAowMDAwMDAwNjQ1IDAwMDAwIG4gCjAwMDAwMDA3NzIgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSA4CiAgIC9Sb290IDcgMCBSCiAgIC9JbmZvIDYgMCBSCj4+CnN0YXJ0eHJlZgo4MjQKJSVFT0YK', | ||
], | ||
src:'', | ||
loadedRatio: 0, | ||
page: 1, | ||
numPages: 0, | ||
rotate: 0, | ||
} | ||
}, | ||
methods: { | ||
password: function(updatePassword, reason) { | ||
updatePassword(prompt('password is "test"')); | ||
}, | ||
error: function(err) { | ||
console.log(err); | ||
} | ||
} | ||
components: { | ||
vuePdf | ||
}, | ||
data () { | ||
return { | ||
show: true, | ||
pdfList: [ | ||
'', | ||
'https://cdn.mozilla.net/pdfjs/tracemonkey.pdf', | ||
'https://cdn.rawgit.com/mozilla/pdf.js/c6e8ca86/test/pdfs/freeculture.pdf', | ||
'https://cdn.rawgit.com/mozilla/pdf.js/c6e8ca86/test/pdfs/annotation-link-text-popup.pdf', | ||
'https://cdn.rawgit.com/mozilla/pdf.js/c6e8ca86/test/pdfs/calrgb.pdf', | ||
'https://cdn.rawgit.com/sayanee/angularjs-pdf/68066e85/example/pdf/relativity.protected.pdf', | ||
'data:application/pdf;base64,JVBERi0xLjUKJbXtrvsKMyAwIG9iago8PCAvTGVuZ3RoIDQgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nE2NuwoCQQxF+/mK+wMbk5lkHl+wIFislmIhPhYEi10Lf9/MVgZCAufmZAkMppJ6+ZLUuFWsM3ZXxvzpFNaMYjEriqpCtbZSBOsDzw0zjqPHZYtTrEmz4eto7/0K54t7GfegOGCBbBdDH3+y2zsMsVERc9SoRkXORqKGJupS6/9OmMIUfgypJL4KZW5kc3RyZWFtCmVuZG9iago0IDAgb2JqCiAgIDEzOAplbmRvYmoKMiAwIG9iago8PAogICAvRXh0R1N0YXRlIDw8CiAgICAgIC9hMCA8PCAvQ0EgMC42MTE5ODcgL2NhIDAuNjExOTg3ID4+CiAgICAgIC9hMSA8PCAvQ0EgMSAvY2EgMSA+PgogICA+Pgo+PgplbmRvYmoKNSAwIG9iago8PCAvVHlwZSAvUGFnZQogICAvUGFyZW50IDEgMCBSCiAgIC9NZWRpYUJveCBbIDAgMCA1OTUuMjc1NTc0IDg0MS44ODk3NzEgXQogICAvQ29udGVudHMgMyAwIFIKICAgL0dyb3VwIDw8CiAgICAgIC9UeXBlIC9Hcm91cAogICAgICAvUyAvVHJhbnNwYXJlbmN5CiAgICAgIC9DUyAvRGV2aWNlUkdCCiAgID4+CiAgIC9SZXNvdXJjZXMgMiAwIFIKPj4KZW5kb2JqCjEgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzCiAgIC9LaWRzIFsgNSAwIFIgXQogICAvQ291bnQgMQo+PgplbmRvYmoKNiAwIG9iago8PCAvQ3JlYXRvciAoY2Fpcm8gMS4xMS4yIChodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmcpKQogICAvUHJvZHVjZXIgKGNhaXJvIDEuMTEuMiAoaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3JnKSkKPj4KZW5kb2JqCjcgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cKICAgL1BhZ2VzIDEgMCBSCj4+CmVuZG9iagp4cmVmCjAgOAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDA1ODAgMDAwMDAgbiAKMDAwMDAwMDI1MiAwMDAwMCBuIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDAyMzAgMDAwMDAgbiAKMDAwMDAwMDM2NiAwMDAwMCBuIAowMDAwMDAwNjQ1IDAwMDAwIG4gCjAwMDAwMDA3NzIgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSA4CiAgIC9Sb290IDcgMCBSCiAgIC9JbmZvIDYgMCBSCj4+CnN0YXJ0eHJlZgo4MjQKJSVFT0YK', | ||
], | ||
src:'', | ||
loadedRatio: 0, | ||
page: 1, | ||
numPages: 0, | ||
rotate: 0, | ||
} | ||
}, | ||
methods: { | ||
password: function(updatePassword, reason) { | ||
updatePassword(prompt('password is "test"')); | ||
}, | ||
error: function(err) { | ||
console.log(err); | ||
} | ||
} | ||
} | ||
@@ -303,2 +324,4 @@ </script> | ||
## Credits | ||
[<img src="https://www.franck-freiburger.com/FF.png" width="16"> Franck Freiburger](https://www.franck-freiburger.com) | ||
[Maintainer: Paolo Zanchi](https://www.linkedin.com/in/paolo-zanchi/) | ||
[Original author: <img src="https://www.franck-freiburger.com/FF.png" width="16"> Franck Freiburger](https://www.franck-freiburger.com) |
30149
320