{"_id":"@dmehub/vue-pdf","_rev":"1-96aa343cd6152da69a2e5a04329fcaff","name":"@dmehub/vue-pdf","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@dmehub/vue-pdf","version":"1.0.0","description":"Vue PDF Viewer","main":"src/vuePdfNoSss.vue","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/dmehub/vue-pdf.git"},"keywords":["pdf","viewer","vue","vue.js"],"author":{"name":"Franck Freiburger"},"license":"MIT","bugs":{"url":"https://github.com/dmehub/vue-pdf/issues"},"homepage":"https://github.com/dmehub/vue-pdf#readme","dependencies":{"pdfjs-dist":"2.0.943","raw-loader":"^0.5.1","vue-resize-sensor":"^2.0.0"},"gitHead":"492ab6ebdfd103bd9c54b0fe2d084b88c1e2fbb3","_id":"@dmehub/vue-pdf@1.0.0","_npmVersion":"6.5.0","_nodeVersion":"8.11.4","_npmUser":{"name":"dmehub","email":"admin@dmehub.com"},"dist":{"integrity":"sha512-/v7HGszNHtow7tm+V7WOhzE09HZAG8DMYs2+1b2xodQ8YRxibAo83FRJNqsBaqpStTlQQGR8TJ+fBdQUWYpm+Q==","shasum":"7f3a77ea937c8f449cbb28a633539e3605fca22f","tarball":"https://registry.npmjs.org/@dmehub/vue-pdf/-/vue-pdf-1.0.0.tgz","fileCount":13,"unpackedSize":32149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcXG4dCRA9TVsSAnZWagAAKD8P/00QD1ymhFTpI7hV6a+g\nobOV0tZHWR3zxOr7iuxBAQI8Ns5LHLlCVLJoHEsWCOxQ2Oftjd3773xwGz2U\ne0xn5v3LOqngrkdkl1HmbCNwFG9VI6U9yKeMmLISevp0R930vNDrhsdRFTdJ\nD7eRRLDCCCpzAgCP288N2S1iLs8b9CCEbt4jfLI3m9p7+u3bLqKjr2+c++ms\nbGiwsYWELgQwjMQkkVezf9YLtHmlWIv0Mdzv+jzvvnBuO1EybYlzZiAIvzWa\nMM0vvfN4S5IVINujO0DtmE+2axcC4q2BMO01gcwPjeH7b5QmfaxI6K70jLcU\nTXoQo0MZvgdWAZYzzVGyt8JWyeqf17oMUZe4u8e42RDhyHTRRIO6WImtc4NY\nSoPP2BheK0nlf0IsZVw2/Ph1aglWXwQaf1da59JoDkmbDsHK7sngVJ8Pl4Tn\nvGBrgg/2AZznNJS0Y8sE260uaTg97C3KYQsvZnRr4Dmp3401iGbYu/GbFWU+\nUbIgVx4nlwmB4VheBLJ+OF96NrLCg5HPHqpJemI9MAp2TPQnqtIMkrjkh5+M\nL2LhmGabP+1NKaA9s62GQtI3ktgMmTubPFRyl3JI2p2KXS2vYBk3MkzWwO1j\nURKA5VOWRD+0bbEl2G/RJqnA0SPv64A7lYSDAOUbG1tTumg+xYYm+bjXj6n1\ncVaZ\r\n=GY2J\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2KlFV8NRuPygTAQKQVytrtgSHPUAG/MAmTa1shjxN3QIgZYpQzp8yybZj+VNj49t8qLzoAoHeyjsZfGl/8BCoCvw="}]},"maintainers":[{"name":"dmehub","email":"admin@dmehub.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-pdf_1.0.0_1549561372836_0.318664978625649"},"_hasShrinkwrap":false}},"time":{"created":"2019-02-07T17:42:52.639Z","1.0.0":"2019-02-07T17:42:53.170Z","modified":"2022-04-05T04:58:28.139Z"},"maintainers":[{"name":"dmehub","email":"admin@dmehub.com"}],"description":"Vue PDF Viewer","homepage":"https://github.com/dmehub/vue-pdf#readme","keywords":["pdf","viewer","vue","vue.js"],"repository":{"type":"git","url":"git+https://github.com/dmehub/vue-pdf.git"},"author":{"name":"Franck Freiburger"},"bugs":{"url":"https://github.com/dmehub/vue-pdf/issues"},"license":"MIT","readme":"# vue-pdf\nvue.js pdf viewer\n\n## Install\n```\nnpm install --save vue-pdf\n```\n\n## Example - basic\n```\n<template>\n  <pdf src=\"./static/relativity.pdf\"></pdf>\n</template>\n\n<script>\nimport pdf from 'vue-pdf'\n\nexport default {\n  components: {\n    pdf\n  }\n}\n```\n\n## Demo\n\n[vue-pdf demo on jsfiddle](https://jsfiddle.net/fossfiddler/5k4ptmqg/145/)\n\n_TBD: fix the demo_\n\n## Browser support\nSame browser support as [Vue.js 2](https://github.com/vuejs/vue/blob/dev/README.md)\n\n## Note\nsince v2.x, the script is exported as esm.\n\n## API\n\n### Props\n\n#### :src <sup>String / Object - default: ''<sup>\nThe url of the pdf file. `src` may also be a `string|TypedArray|DocumentInitParameters|PDFDataRangeTransport` for more details, see [`PDFJS.getDocument()`](https://github.com/mozilla/pdf.js/blob/8ff1fbe7f819513e7d0023df961e3d223b35aefa/src/display/api.js#L117).\n\n#### :page <sup>Number - default: 1<sup>\nThe page number to display.\n\n#### :rotate <sup>Number - default: 0<sup>\nThe page rotation in degrees, only multiple of 90 are valid.\n\n### Events\n\n#### @password <sup>(updatePassword, reason)<sup>\n  * `updatePassword`: The function to call with the pdf password.\n  * `reason`: the reason why this function is called `'NEED_PASSWORD'` or `'INCORRECT_PASSWORD'`\n\n#### @progress <sup>Number<sup>\nDocument loading progress. Range [0, 1].\n\n#### @loaded\nTriggered when the document is loaded.\n\n#### @page-loaded <sup>Number<sup>\nTriggered when a page is loaded.\n\n#### @num-pages <sup>Number<sup>\nThe total number of pages of the pdf.\n\n#### @error <sup>Object<sup>\nTriggered when an error occurred.\n\n#### @link-clicked <sup>Number<sup>\nTriggered when an internal link is clicked\n\n\n### Public methods\n\n#### print(dpi, pageList) * _experimental_ *\n  * `dpi`: the print rezolution of the document (try 100).\n  * `pageList`: the list (array) of pages to print.\n\n### Public static methods\n\n#### createLoadingTask(src)\n  * `src`: see `:src` prop  \n  This function creates a PDFJS loading task that can be used and reused as `:src` property.  \n  The loading task is a promise that resolves with the PDFJS pdf document that exposes the `numPages` property (see example below).\n  \n  **beware:** when the component is destroyed, the object returned by `createLoadingTask()` become invalid. \n\n\n## Examples\n\n##### Example - current page / page count\n```\n<template>\n    <div>\n        {{currentPage}} / {{pageCount}}\n        <pdf\n            src=\"https://cdn.mozilla.net/pdfjs/tracemonkey.pdf\"\n            @num-pages=\"pageCount = $event\"\n            @page-loaded=\"currentPage = $event\"\n        ></pdf>\n    </div>\n</template>\n\n<script>\n\nimport pdf from 'vue-pdf'\n\nexport default {\n    components: {\n        pdf\n    },\n    data() {\n        return {\n            currentPage: 0,\n            pageCount: 0,\n        }\n    }\n}\n\n</script>\n```\n\n\n##### Example - display multiple pages of the same pdf document\n```\n<template>\n    <div>\n        <pdf\n            v-for=\"i in numPages\"\n            :key=\"i\"\n            :src=\"src\"\n            :page=\"i\"\n            style=\"display: inline-block; width: 25%\"\n        ></pdf>\n    </div>\n</template>\n\n<script>\n\nimport pdf from 'vue-pdf'\n\nvar loadingTask = pdf.createLoadingTask('https://cdn.mozilla.net/pdfjs/tracemonkey.pdf');\n\nexport default {\n    components: {\n        pdf\n    },\n    data() {\n        return {\n            src: loadingTask,\n            numPages: undefined,\n        }\n    },\n    mounted() {\n\n        this.src.then(pdf => {\n\n            this.numPages = pdf.numPages;\n        });\n    }\n}\n\n</script>\n```\n\n\n##### Example - print all pages\n```\n<template>\n    <button @click=\"$refs.myPdfComponent.print()\">print</button>\n    <pdf ref=\"myPdfComponent\" src=\"https://cdn.mozilla.net/pdfjs/tracemonkey.pdf\"></pdf>\n</template>\n```\n\n\n##### Example - print multiple pages\n```\n<template>\n    <button @click=\"$refs.myPdfComponent.print(100, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])\">print</button>\n    <pdf ref=\"myPdfComponent\" src=\"https://cdn.mozilla.net/pdfjs/tracemonkey.pdf\"></pdf>\n</template>\n```\n\n\n##### Example - get text content\n```\n<template>\n    <div>\n        <button\n            @click=\"logContent\"\n        >\n            log content\n        </button>\n        <pdf\n            ref=\"myPdfComponent\"\n            src=\"https://cdn.mozilla.net/pdfjs/tracemonkey.pdf\"\n        ></pdf>\n    </div>\n</template>\n\n<script>\n\nimport pdf from 'vue-pdf'\n\nexport default {\n    components: {\n        pdf\n    },\n    methods: {\n        logContent() {\n\n            this.$refs.myPdfComponent.pdf.forEachPage(function(page) {\n\n                return page.getTextContent()\n                .then(function(content) {\n\n                    var text = content.items.map(item => item.str);\n                    console.log(text);\n                })\n            });\n        }\n    }\n}\n\n</script>\n```\n\n\n##### Example - complete\n```\n<template>\n    <div>\n        <input type=\"checkbox\" v-model=\"show\">\n        <select v-model=\"src\" style=\"width: 30em\">\n            <option v-for=\"item in pdfList\" :value=\"item\" v-text=\"item\"></option>\n        </select>\n        <input v-model.number=\"page\" type=\"number\" style=\"width: 5em\"> /{{numPages}}\n        <button @click=\"rotate += 90\">&#x27F3;</button>\n        <button @click=\"rotate -= 90\">&#x27F2;</button>\n        <button @click=\"$refs.pdf.print()\">print</button>\n        <div style=\"width: 50%\">\n            <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>\n            <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>\n        </div>\n    </div>\n</template>\n<script>\nimport pdf from 'vue-pdf'\n\nexport default {\n    components: {\n        pdf: pdf\n    },\n    data () {\n        return {\n            show: true,\n            pdfList: [\n                '',\n                'https://cdn.mozilla.net/pdfjs/tracemonkey.pdf',\n                'https://cdn.rawgit.com/mozilla/pdf.js/c6e8ca86/test/pdfs/freeculture.pdf',\n                'https://cdn.rawgit.com/mozilla/pdf.js/c6e8ca86/test/pdfs/annotation-link-text-popup.pdf',\n                'https://cdn.rawgit.com/mozilla/pdf.js/c6e8ca86/test/pdfs/calrgb.pdf',\n                'https://cdn.rawgit.com/sayanee/angularjs-pdf/68066e85/example/pdf/relativity.protected.pdf',\n                'data:application/pdf;base64,JVBERi0xLjUKJbXtrvsKMyAwIG9iago8PCAvTGVuZ3RoIDQgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nE2NuwoCQQxF+/mK+wMbk5lkHl+wIFislmIhPhYEi10Lf9/MVgZCAufmZAkMppJ6+ZLUuFWsM3ZXxvzpFNaMYjEriqpCtbZSBOsDzw0zjqPHZYtTrEmz4eto7/0K54t7GfegOGCBbBdDH3+y2zsMsVERc9SoRkXORqKGJupS6/9OmMIUfgypJL4KZW5kc3RyZWFtCmVuZG9iago0IDAgb2JqCiAgIDEzOAplbmRvYmoKMiAwIG9iago8PAogICAvRXh0R1N0YXRlIDw8CiAgICAgIC9hMCA8PCAvQ0EgMC42MTE5ODcgL2NhIDAuNjExOTg3ID4+CiAgICAgIC9hMSA8PCAvQ0EgMSAvY2EgMSA+PgogICA+Pgo+PgplbmRvYmoKNSAwIG9iago8PCAvVHlwZSAvUGFnZQogICAvUGFyZW50IDEgMCBSCiAgIC9NZWRpYUJveCBbIDAgMCA1OTUuMjc1NTc0IDg0MS44ODk3NzEgXQogICAvQ29udGVudHMgMyAwIFIKICAgL0dyb3VwIDw8CiAgICAgIC9UeXBlIC9Hcm91cAogICAgICAvUyAvVHJhbnNwYXJlbmN5CiAgICAgIC9DUyAvRGV2aWNlUkdCCiAgID4+CiAgIC9SZXNvdXJjZXMgMiAwIFIKPj4KZW5kb2JqCjEgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzCiAgIC9LaWRzIFsgNSAwIFIgXQogICAvQ291bnQgMQo+PgplbmRvYmoKNiAwIG9iago8PCAvQ3JlYXRvciAoY2Fpcm8gMS4xMS4yIChodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmcpKQogICAvUHJvZHVjZXIgKGNhaXJvIDEuMTEuMiAoaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3JnKSkKPj4KZW5kb2JqCjcgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cKICAgL1BhZ2VzIDEgMCBSCj4+CmVuZG9iagp4cmVmCjAgOAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDA1ODAgMDAwMDAgbiAKMDAwMDAwMDI1MiAwMDAwMCBuIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDAyMzAgMDAwMDAgbiAKMDAwMDAwMDM2NiAwMDAwMCBuIAowMDAwMDAwNjQ1IDAwMDAwIG4gCjAwMDAwMDA3NzIgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSA4CiAgIC9Sb290IDcgMCBSCiAgIC9JbmZvIDYgMCBSCj4+CnN0YXJ0eHJlZgo4MjQKJSVFT0YK',\n            ],\n            src:'',\n            loadedRatio: 0,\n            page: 1,\n            numPages: 0,\n            rotate: 0,\n        }\n    },\n    methods: {\n        password: function(updatePassword, reason) {\n\n            updatePassword(prompt('password is \"test\"'));\n        },\n        error: function(err) {\n\n            console.log(err);\n        }\n    }\n}\n</script>\n```\n\n## Credits\n[<img src=\"https://www.franck-freiburger.com/FF.png\" width=\"16\"> Franck Freiburger](https://www.franck-freiburger.com)","readmeFilename":"README.md"}