vue中加载pdf文件

vue中加载pdf文件

方案一:

  直接调用事件即可

openPdf {
      window.open('/assets/BJBVerse.pdf')
  },

方案二:

npm install vue-pdf --save
<template>
  <div>
    <pdf
      v-for="i in numPages"
      :key="i"
      :src="localSrc"
      :page="i"
      style="display: inline-block; width: 25%"
    ></pdf>
  </div>
</template>

<script>

import pdf from 'vue-pdf'


export default {
  props:{src:String},
  components: {
    pdf
  },
  data() {
    return {
      localSrc: '',
      numPages: undefined,
    }
  },

  mounted() {
    this.localSrc = pdf.createLoadingTask(this.src);
    this.localSrc.promise.then(pdf => {

      this.numPages = pdf.numPages;
    });
  }
}

</script>

  

import Pdf from './Pdf.vue'

    <el-dialog :visible.sync="showBJBCreator" width="50%" height="7%" append-to-body center>
      <Pdf src="/assets/BJBCreator.pdf" style="width: 100%; height: 7%" ref="pdf"></Pdf>
    </el-dialog>

  components: {
    Pdf
  },


安装elementui
main.js里引入

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

  

不分页文件代码

<template>
	<div>
		<pdf
			v-for="i in numPages"
			:key="i"
			:src="localSrc"
			:page="i"
			style="display: inline-block; width: 25%"
		></pdf>
	</div>
</template>

<script>

import pdf from 'vue-pdf'


export default {
  props:{src:String},
	components: {
		pdf
	},
	data() {
		return {
			localSrc: '',
			numPages: undefined,
		}
	},

	mounted() {
    this.localSrc = pdf.createLoadingTask(this.src);
		this.localSrc.promise.then(pdf => {

			this.numPages = pdf.numPages;
		});
	}
}

</script>

  

posted @ 2023-07-13 17:43  web与webGL  阅读(799)  评论(0编辑  收藏  举报