Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork532
FranckFreiburger/vue-pdf
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
vue.js pdf viewer is a package for Vue that enables you to display and view PDF's easily via vue components.
npm install vue-pdf
yarn add vue-pdf
<template> <pdfsrc="./path/to/static/relativity.pdf"></pdf></template><script>importpdffrom'vue-pdf'exportdefault { components: { pdf }}
TBD: fix the demo
Same browser support asVue.js 2
since v2.x, the script is exported as esm.
The url of the given pdf.src
may also be astring|TypedArray|DocumentInitParameters|PDFDataRangeTransport
for more details, seePDFJS.getDocument()
.
The page number to display.
The page rotation in degrees, only multiple of 90 are valid.EG: 90, 180, 270, 360, ...
updatePassword
: The function to call with the pdf password.reason
: the reason why this function is called'NEED_PASSWORD'
or'INCORRECT_PASSWORD'
Document loading progress. Range [0, 1].
Triggers when the document is loaded.
Triggers when a page is loaded.
The sum of all pages from the given pdf.
Triggers when an error occurs.
Triggers when an internal link is clicked
dpi
: the print resolution of the document (try 100).pageList
: the list (array) of pages to print.
src
: see:src
propoptions
: an object of options.This function creates a PDFJS loading task that can be used and reused as:src
property.
The loading task is a promise that resolves with the PDFJS pdf document that exposes thenumPages
property (see example below).
beware: when the component is destroyed, the object returned bycreateLoadingTask()
become invalid.
Supported options:
- onPassword: Callback that's called when a password protected PDF is being opened.
- onProgress: Callback return loading progress.
- withCredentials: Wheter or not to send cookies in the fetch request.
<template><div>{{currentPage}} / {{pageCount}}<pdfsrc="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf"@num-pages="pageCount = $event"@page-loaded="currentPage = $event"></pdf></div></template><script>importpdffrom'vue-pdf'exportdefault {components: {pdf},data() {return {currentPage:0,pageCount:0,}}}</script>
<template><div><pdfv-for="i in numPages":key="i":src="src":page="i"style="display:inline-block;width:25%"></pdf></div></template><script>importpdffrom'vue-pdf'var loadingTask=pdf.createLoadingTask('https://cdn.mozilla.net/pdfjs/tracemonkey.pdf');exportdefault {components: {pdf},data() {return {src: loadingTask,numPages:undefined,}},mounted() {this.src.promise.then(pdf=> {this.numPages=pdf.numPages;});}}</script>
<template><button@click="$refs.myPdfComponent.print()">print</button><pdfref="myPdfComponent"src="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf"></pdf></template>
<template><button@click="$refs.myPdfComponent.print(100, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])">print</button><pdfref="myPdfComponent"src="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf"></pdf></template>
<template><div><button@click="logContent">log content</button><pdfref="myPdfComponent"src="https://cdn.mozilla.net/pdfjs/tracemonkey.pdf"></pdf></div></template><script>importpdffrom'vue-pdf'exportdefault {components: {pdf},methods: {logContent() {this.$refs.myPdfComponent.pdf.forEachPage(function(page) {returnpage.getTextContent().then(function(content) {var text=content.items.map(item=>item.str);console.log(text);})});}}}</script>
<template><div><inputtype="checkbox"v-model="show"><selectv-model="src"style="width:30em"><optionv-for="item in pdfList":value="item"v-text="item"></option></select><inputv-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><divstyle="width:50%"><divv-if="loadedRatio > 0 && loadedRatio < 1"style="background-color:green;color:white;text-align:center":style="{ width: loadedRatio * 100 + '%' }">{{ Math.floor(loadedRatio * 100) }}%</div><pdfv-if="show"ref="pdf"style="border:1pxsolidred":src="src":page="page":rotate="rotate"@password="password"@progress="loadedRatio = $event"@error="error"@num-pages="numPages = $event"@link-clicked="page = $event"></pdf></div></div></template><script>importpdffrom'vue-pdf'exportdefault {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);}}}</script>
About
vue.js pdf viewer
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.