vue移动端实现pdf的页面在线预览展示,CMapReaderFactory可以解决文字不展示、空白问题

//1、安装依赖vue-pdf

npm install --save vue-pdf

//2、使用组件

<pdf v-for="i in numPages" ref="pdfs" :src="pdfUrl" :key="i" :page="i"></pdf>

//3、js文件

<script>
//引入pdf
important pdf from "vue-pdf";
important CMapReaderFactory from "vue-pdf/src/CMapReaderFactory.js"
export default{
  components:{ pdf },
	data(){
	  pdfUrl:"",
	  numPages:[]
	},
	created(){
	  this.getPdf();//调用方法
	},
	//获取pdf
	methods:{
	  //接口获取pdf
	  getPdf(){
	    getPdf({fcn:3 }).then(res=>{
	      if(res.code === '0'){ 
	       //需要转换为base64位
	        this.pdfUrl =  "data:application/pdf;base64," + res.data.pdfUrl;
	        this.pdfUrl = pdf.createLoadingTask(this.pdfUrl ,CMapReaderFactory);
	        this.pdfUrl .promise
	          .then(pdf => {
	            this.$nextTick(() => {
	    	      this.numPages = pdf.numPages
	    	    })
	          .catch((err) => {
                console.error('pdf 加载失败', err)
              })
	        });
	    }
      })
	}
}

</script>
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐