Forked from https://github.com/randolphtellis/vue3-pdfjs
and enhanced a little.
Install
npm i @boooooob/vue3-pdfjs
or
yarn add @boooooob/vue3-pdfjs
Usage
Import globally
import { createApp } from 'vue'
import App from './App.vue'
import VuePdf from '@boooooob/vue3-pdfjs'
const app = createApp(App)
app.use(VuePdf)
app.mount('#app')
Props
export interface VuePdfPropsType {
src: string | URL | Uint8Array | PDFDataRangeTransport | DocumentInitParameters;
page?: number;
allPages?: boolean;
scale?: number;
wrapperIdPrefix?: string;
}
Events
emit('progress', 0);
emit('pdfLoaded', pdf);
emit('totalPages', pdf.numPages);
emit('pageLoaded', page);
Basic Example
Import components from the esm
folder to enable tree shaking.
Please note that Mozilla's pdfjs npm package does not export tree-shakeable ES modules. Info here - https://github.com/mozilla/pdf.js/issues/12900
<script lang="ts">
import { defineComponent, ref } from 'vue';
import VuePdf from '@boooooob/vue3-pdfjs'
export default defineComponent({
name: 'Home',
components: { VuePdf },
setup() {
const pdfSrc = ref<VuePdfPropsType['src']>('https://raw.githubusercontent.com/mozilla/pdf.js/ba2edeae/web/compressed.tracemonkey-pldi-09.pdf')
return {
pdfSrc
}
}
});
</script>
<template>
<VuePdf :src="pdfSrc" all-pages />
</template>